TypeScript:类型“数字”不能分配给类型“ 0”

时间:2019-08-10 11:00:54

标签: typescript

我将变量x声明为

public x : 0;

与其将其初始化为0

考虑到我已经正确声明了它,因此将其初始化为

this.x = 5;

我在上一行显示错误,显示为

Type '5' is not assignable to type '0'.ts(2322)

任何人都可以知道,为什么会这样?

1 个答案:

答案 0 :(得分:4)

这是Typescript的功能,在:之后,声明了可能的类型,也可以是特定的值。

例如,您还可以将变量限制为特定的字符串:

var action : "email" | "sms";

在这种情况下,action = "fax"将给出编译错误。

对于字符串,这称为“字符串文字类型”。使用数字,这称为“数字文字类型”。

因此,在这种情况下,您将其声明为数字文字类型,并以0作为允许值。

另请参阅https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-typeshttps://www.typescriptlang.org/docs/handbook/advanced-types.html#numeric-literal-types

因此请注意在Typescript中混合使用=:,因为在这种情况下,它们都是正确的Typescript,但是行为不同;)