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/

10-13 05:58