阅读 typescript 中的“枚举”,我看到这段代码已编译为 javascript。
var Season = [];
Season[Season["Spring"] = 0] = "Spring";
Season[Season["Summer"] = 1] = "Summer";
Season[Season["Fall"] = 2] = "Fall";
Season[Season["Winter"] = 3] = "Winter";
console.log(Season.Spring); // 0
console.log(Season[0]); // Spring
而且,如果我在第一行将 Season 更改为 {} empty objext,这也有效并且有意义。 我不知道发生了什么事。 这是什么?
编辑:是的。这不是编译器生成的。编译器使用空对象。但是如果我把它改成空数组。它仍然有效。我的问题是为什么数组也能很好地工作。起初我的问题包括两个版本,但有人编辑了问题并删除了对象使用版本。
最佳答案
这个:
Season[Season["Spring"] = 0] = "Spring";
Season[Season["Summer"] = 1] = "Summer";
Season[Season["Fall"] = 2] = "Fall";
Season[Season["Winter"] = 3] = "Winter";`
在 Season 对象中创建八个属性:
Season["Spring"] = 0;
Season["Summer"] = 1;
Season["Fall"] = 2;
Season["Winter"] = 3;
Season[0] = "Spring";
Season[1] = "Summer";
Season[2] = "Fall";
Season[3] = "Winter";
在那个季节之后可以请求:
- 通过文本获取其索引(前四个属性)
- 通过索引获取其文本(后四属性)
关于javascript - 在javascript数组中按值获取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075188/