preserveConstEnums
Typescript 支持通过 const enum
声明的 costant 可枚举。
这通常只是语法糖,因为在编译的 JavaScript 中内联了常量枚举。
例如以下代码
const enum Tristate {
True,
False,
Unknown
}
var something = Tristate.True;
编译成
var something = 0;
虽然性能可以从内联中受益,但是你可能更喜欢保持枚举即使是恒定的(即:你可能希望开发代码的可读性),为了做到这一点,你必须在 tsconfig.json 中将 preserveConstEnums
clausole 设置为 compilerOptions
到 true
。
{
"compilerOptions": {
"preserveConstEnums" = true,
...
},
"exclude": [
...
]
}
通过这种方式,前面的示例将被编译为任何其他枚举,如下面的代码段所示。
var Tristate;
(function (Tristate) {
Tristate[Tristate["True"] = 0] = "True";
Tristate[Tristate["False"] = 1] = "False";
Tristate[Tristate["Unknown"] = 2] = "Unknown";
})(Tristate || (Tristate = {}));
var something = Tristate.True