TypeScript · Middle · Запитання 16 з 75
Чому замість enum часто використовують об'єкт as const?
const Status = { Active: 'active', Banned: 'banned' } as const;
type Status = typeof Status[keyof typeof Status];- ✓Правильна відповідь: Це звичайний JS-об'єкт, а тип значень - union рядків
- 2
as constпрацює в рантаймі в десятки разів швидше, ніж enum - 3Enum видалено з TypeScript 5, і він більше не компілюється
Пояснення
Об'єкт - стандартний JS: його можна ітерувати, він сумісний із режимом erasable syntax (Node.js type stripping). Тип - union рядків, що приймає й літерали з API. Числові enum, навпаки, приймають будь-яке число й створюють зворотне відображення. Enum не видалено.