TS2474 (TS) В объявлениях перечисления const инициализатор члена должен быть константным выражением - PullRequest
0 голосов
/ 07 июня 2018

Код ошибки:

export declare const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning",
}

Использование Angular 6 с .net framework

1 Ответ

0 голосов
/ 07 июня 2018

Постоянные перечисления стираются во время переноса, поэтому они не оставляют после себя код в приложении времени выполнения.Все использования заменяются на значение во всем приложении.Следовательно, ваше ключевое слово declare является избыточным:

export const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning"
}

В отличие от обычных перечислений, постоянные перечисления не могут иметь определенные виды вычисляемых значений, например, это допустимо в обычных перечислениях, но не постоянных перечислениях:

const x = 1;

enum A {
    Name = x,
    Age = x + 1
}

Обычно ваша ошибка возникает из-за того, что вы пытаетесь что-то сделать , как выше с постоянным перечислением.

Вы можете использовать некоторые вычисленные значения даже впостоянное перечисление - до тех пор, пока результат предсказуем, например:

const enum A {
    Name = 1 << 0,
    Age = 1 << 1,
    Date = 1 << 2
}
...