Enums TypeScript枚举之外的值没有错误
我希望这可能会产生编译时错误,但我想我只是误解了枚举的工作原理Enums TypeScript枚举之外的值没有错误,enums,typescript,Enums,Typescript,我希望这可能会产生编译时错误,但我想我只是误解了枚举的工作原理 enum SortDirection { ascending = 1, descending = -1 } type IndexSpec = {[index: string]: SortDirection}; var i: IndexSpec = {thing: 3}; // no compile time error 所有数值都被视为值枚举值 这是允许的,因为标志和非标志枚举之间没有区别: enum MyFl
enum SortDirection {
ascending = 1,
descending = -1
}
type IndexSpec = {[index: string]: SortDirection};
var i: IndexSpec = {thing: 3}; // no compile time error
所有数值都被视为值枚举值 这是允许的,因为标志和非标志枚举之间没有区别:
enum MyFlags {
Cool = 0x1,
Awesome = 0x2,
Neat = 0x4
}
var i: MyFlags = 5; // Cool | Neat
太好了,谢谢瑞安。我猜“因为标志枚举和非标志枚举之间没有区别”的答案在源代码中的某个地方暗示过,或者可能在中,但我只是错过了它。无论如何,谢谢你。你知道有什么方法可以达到我在这个问题上想要达到的目的吗?如果没有,不用担心:)再次感谢!在编译时,我想不出一种方法来确保枚举中有一个数字。如果使用枚举存在危险,最好不要使用数字文字。