我已经过了以下片段来支持带字符串的枚举
enum Color {
red = <any>"red", green = <any>"green", Blue = <any>"blue"
}
我们需要它的手段和原因是什么?
答案 0 :(得分:5)
是什么意思
Typescript枚举只是number
个。因此,如果您分配一个字符串,编译器会抱怨。
enum Color {
red = "red" // error `string` is not assignable to color
}
但是使用any
你告诉编译器 shhhh ......我知道更好。 More on this。
注意:如果这样做,您可能需要再次使用编译器,例如:
enum Color {
red = <any>"red" // shhhh
}
var foo = Color.red; // okay
foo = 123; // okay: TypeScript still thinks red is a number
foo = "red"; // Error
foo = <any>"red"; // shhhhh
为什么我们需要它
如果你想要基于字符串的枚举。我个人现在使用这种模式:https://basarat.gitbooks.io/typescript/content/docs/tips/stringEnums.html
使用typescript 1.8,会有头等支持,例如
type Foo = "a" | "b";