Машинопись не компилирует перечисления в числа - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь использовать typcript для записи данных json со схемой, поэтому мне нужен компилятор Typescript для компиляции перечислений в числа в выходных данных js, но я не могу заставить это работать.

Я уже пробовал несколько хороших вещей, этот пост похож на проблему, с которой я столкнулся, но я не использую awesome-typescript-loader, я также попробовал все

1 Ответ

2 голосов
/ 18 октября 2019

Вы ищете const enums :

export const enum MyEnum {
    Undefined,
    FirstValue,
    SecondValue,
    ThirdValue
}
var item = { 
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum.FirstValue
}

компилируется в

var MyEnum;
(function (MyEnum) {
// stuff
})(MyEnum || (MyEnum = {}));

var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": 1 /* FirstValue */
};

, и если вы хотите вообще пропустить объявление enum, сделайте его окружающий , а также:

export declare const enum MyEnum {
   ...
}
var item = { 
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum.FirstValue
}

дает только

var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": 1 /* FirstValue */
};
...