Middle
В чём проблема использования enum в TypeScript при компиляции в JavaScript? Чем можно заменить enum?
sobes.tech AI
Odpoveď od AI
Problém používania enum v TypeScript pri kompilácii do JavaScript spočíva v tom, že TypeScript enumy sa kompilujú do pomerne veľkého kódu, ktorý vytvára objekt s obojsmerným mapovaním (číslo ↔ reťazec). To zvyšuje veľkosť výsledného balíka a môže spôsobovať nechcené vedľajšie účinky počas tree-shaking.
Okrem toho je enum v TypeScript špeciálna konštrukcia, ktorá v čistom JavaScripte neexistuje, čo sťažuje jeho integráciu s inými nástrojmi a knižnicami.
Namiesto enumov sa často odporúča používať:
- Objekty s konštantami (const objects) s typom
as const, čo umožňuje získať typy literálov a ľahší kód:
const Colors = {
Red: "RED",
Green: "GREEN",
Blue: "BLUE"
} as const;
type Colors = typeof Colors[keyof typeof Colors];
- Unie typov reťazcových literálov, čo poskytuje prísne typovanie bez zbytočného kódu:
type Colors = "RED" | "GREEN" | "BLUE";
Tento prístup znižuje veľkosť skompilovaného kódu a zlepšuje čitateľnosť.