preserveConstEnums

Typescript 支持通过 const enum 声明的 costant 可枚举。

这通常只是语法糖,因为在编译的 JavaScript 中内联了常量枚举。

例如以下代码

const enum Tristate {
    True,
    False,
    Unknown
}

var something = Tristate.True;

编译成

var something = 0;

虽然性能可以从内联中受益,但是你可能更喜欢保持枚举即使是恒定的(即:你可能希望开发代码的可读性),为了做到这一点,你必须在 tsconfig.json 中将 preserveConstEnums clausole 设置为 compilerOptionstrue

{
    "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