Typescript Enums是基于数字的,也是开放式的。这意味着我可以拥有
enum Color {
Red = 0,
Green,
Blue
}
enum Color {
Black
}
这里的问题是,现在我将Color.Red与值0相关联,Color.Black也与值0相关联。我希望Color.Black与下一个可用值3相关联。显然修复是容易,但行为很奇怪,可能会导致错误。这是语言问题还是由于其他原因而发生?
答案 0 :(得分:1)
似乎是语言中的错误。如果省略Red
的初始化,TypeScript将抛出错误。但如果你初始化它就不会。
The output is definitely broken:
enum One {
Foo = 0,
Bar
}
enum One {
Baz
}
将转移到
var One;
(function (One) {
One[One["Foo"] = 0] = "Foo";
One[One["Bar"] = 1] = "Bar";
})(One || (One = {}));
(function (One) {
One[One["Baz"] = 0] = "Baz";
})(One || (One = {}));
这显然不是你想要的结果:)