我将变量x
声明为
public x : 0;
与其将其初始化为0
考虑到我已经正确声明了它,因此将其初始化为
this.x = 5;
我在上一行显示错误,显示为
Type '5' is not assignable to type '0'.ts(2322)
任何人都可以知道,为什么会这样?
答案 0 :(得分:4)
这是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-literal-types
因此请注意在Typescript中混合使用=
和:
,因为在这种情况下,它们都是正确的Typescript,但是行为不同;)