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