在 TypeScript 中阅读 'enum' 时,我看到这段代码被编译成了 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更改为{}空对象,这也可以正常工作并且有意义。我不知道这里发生了什么。
编辑:是的。这不是编译器生成的内容。编译器使用空对象。但是如果我将其更改为空数组,它仍然可以正常工作。我的问题是为什么数组也可以很好地工作。起初我的问题包括两个版本,但有人编辑了问题并删除了对象使用版本。