enum
在TypeScript运行时会变成什么?
水果
enum Fruit {APPLE, ORANGE};
主要
var bowl = [Fruit.APPLE, Fruit.ORANGE];
console.log(bowl);
生成的
main.js
文件与.ts
保持相同,但是不起作用。 最佳答案
该代码的JS将是:
// Fruit.js
var Fruit;
(function (Fruit) {
Fruit[Fruit["APPLE"] = 0] = "APPLE";
Fruit[Fruit["ORANGE"] = 1] = "ORANGE";
})(Fruit || (Fruit = {}));
// main.js
var bowl = [Fruit.APPLE, Fruit.ORANGE];
console.log(bowl);
您可能正在寻找
const enum
:const enum Fruit {APPLE, ORANGE};
如果使用它,那么枚举的值将内联到JavaScript:
// Fruit.js: empty.. nothing will be in here
// main.js
var bowl = [0 /* APPLE */, 1 /* ORANGE */];
console.log(bowl);
当您的应用程序中不需要常规枚举生成的JS代码时,可以使用
const enum
。关于typescript - 在TypeScript中编译一个枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32871129/