Как работают `enum` в TypeScript и какие виды существуют?
СобеседованиеСистема типов
- Числовой enum: автоинкремент от 0 (или указанного значения). Поддерживает обратный маппинг:
Enum[0] → "Name"
- Строковой enum: каждый член инициализирован строкой. Без обратного маппинга.
- Гетерогенный enum: смешанные строковые и числовые значения (не рекомендуется)
const enum: полностью стирается при компиляции, значения инлайнятся. Несовместим с isolatedModules.
- Альтернатива:
as const объект + typeof obj[keyof typeof obj]