TypeScript имеет множество различных способов определения перечисления:
enum Alpha { X, Y, Z }
const enum Beta { X, Y, Z }
declare enum Gamma { X, Y, Z }
declare const enum Delta { X, Y, Z }
Если я пытаюсь использовать значение из Gamma
во время выполнения, я получаю ошибку, потому что Gamma
не определен, но это не так для Delta
или Alpha
? Что означает const
или declare
для объявлений здесь?
Также существует флаг preserveConstEnums
компилятора - как это взаимодействует с ними?