TypeScript · Middle · Pytanie 16 z 75
Dlaczego zamiast enum często używa się obiektu z as const?
const Status = { Active: 'active', Banned: 'banned' } as const;
type Status = typeof Status[keyof typeof Status];- ✓Poprawna odpowiedź: To zwykły obiekt JS, a typ wartości to unia stringów
- 2
as constdziała w runtime dziesiątki razy szybciej niż enum - 3Enumy usunięto w TypeScript 5 i już się nie kompilują
Wyjaśnienie
Obiekt to standardowy JS: można po nim iterować i jest zgodny z trybem erasable syntax (type stripping w Node.js). Typ to unia stringów, która przyjmuje też literały z API. Enumy liczbowe natomiast przyjmują dowolną liczbę i tworzą odwrotne mapowanie. Enumów nie usunięto.