Middle
В чём проблема использования enum в TypeScript при компиляции в JavaScript? Чем можно заменить enum?
sobes.tech MI
Válasz az MI-től
A TypeScript-ben az enumok használatának problémája az, hogy a TypeScript enumokat elég nagy kódra fordítja, amely egy kétirányú leképezést (szám ↔ szöveg) tartalmazó objektumot hoz létre. Ez növeli a végső csomag méretét, és nem kívánt mellékhatásokat okozhat a tree-shaking során.
Ezenkívül a TypeScript enum egy speciális konstrukció, amely nem létezik a tiszta JavaScriptben, így megnehezíti más eszközökkel és könyvtárakkal való integrációját.
Az enum helyett gyakran ajánlott a következőket használni:
- Állandókkal ellátott objektumok (const objects)
as consttípussal, ami lehetővé teszi a literál típusok elérését és könnyebb kódot eredményez:
const Colors = {
Red: "RED",
Green: "GREEN",
Blue: "BLUE"
} as const;
type Colors = typeof Colors[keyof typeof Colors];
- Szöveg literál típusok uniója, ami szigorú típusosságot biztosít extra kód nélkül:
type Colors = "RED" | "GREEN" | "BLUE";
Ez a megközelítés csökkenti a fordított kód méretét és javítja az olvashatóságot.