我将一个变量声明x为
public x : 0;
而不是将其初始化为0
认为我已经正确地声明了它,我将它初始化为
this.x = 5;
我在上面的行中遇到错误,内容为
Type '5' is not assignable to type '0'.ts(2322)
谁能告诉我,为什么会这样?
我将一个变量声明x为
public x : 0;
而不是将其初始化为0
认为我已经正确地声明了它,我将它初始化为
this.x = 5;
我在上面的行中遇到错误,内容为
Type '5' is not assignable to type '0'.ts(2322)
谁能告诉我,为什么会这样?
这是 Typescript 的一个特性,在: 声明了可能的类型之后,它也可以是特定的值。
例如,您还可以将变量限制为特定字符串:
var action : "email" | "sms";
在这种情况下action = "fax"会给出编译错误。
对于字符串,这称为“字符串文字类型”。对于数字,这称为“数字文字类型”。
因此,在您的情况下,您将其声明为具有0允许值的数字文字类型。
另请参阅https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types和https://www.typescriptlang.org/docs/handbook/advanced-types.html#numeric-文字类型
所以要小心混合=和:打字稿,因为在这种情况下两者都是正确的打字稿,但有不同的行为;)