wangdoc / typescript-tutorial

TypeScript 教程
https://wangdoc.com/typescript
2.5k stars 269 forks source link

intro.md 中可能的描述错误 #8

Closed m1stake closed 1 year ago

m1stake commented 1 year ago

“语言简介(intro.md)”中。 “上面示例中,例一的报错是因为变量一旦赋值了,就不允许再改变类型”,这段描述可能有问题。

变量的类型确定,应该是在变量声明的时候,而不是赋值的时候。

// 这段代码可以通过编译,因为在第一行 c 已经被推断为 any 类型(这只是我的猜测)
let c;
console.log(typeof c);
c = 1;
console.log(typeof c);
c = '1';
console.log(typeof c);
ruanyf commented 1 year ago

上面代码不报错,早就被诟病了,变量声明没有给出类型。

[1] https://github.com/microsoft/TypeScript/issues/30899

[2] https://stackoverflow.com/questions/73440042/typescript-prevent-inferring-types-except-at-variable-declaration

m1stake commented 1 year ago

这种确实有点尴尬,其它语言类型推断都是一定要赋值的