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 компилятора - как это взаимодействует с ними?