Middle
Mis on probleem kasutades enum TypeScriptis, kui see kompileeritakse JavaScriptiks? Millega saab enum asendada?
sobes.tech AI
Vastus AI-lt
Probleem kasutades enum TypeScriptis, kui see kompileeritakse JavaScriptiks, on see, et TypeScripti enumid kompileeritakse üsna suureks koodiks, mis loob objekti kahe suunaga kaardistusega (arv ↔ string). See suurendab lõpliku paketi suurust ja võib põhjustada soovimatuid kõrvaltoimeid tree-shaking'i ajal.
Lisaks on enum TypeScriptis eriline konstruktsioon, mis ei eksisteeri puhtas JavaScriptis, mis muudab selle integreerimise teiste tööriistade ja teekidega keerulisemaks.
Sageli soovitatakse kasutada:
- Konstantidega objekte (const objects) tüübiga
as const, mis võimaldab saada literaaltüüpe ja kergemat koodi:
const Colors = {
Red: "RED",
Green: "GREEN",
Blue: "BLUE"
} as const;
type Colors = typeof Colors[keyof typeof Colors];
- String literaalide uniooni tüüpe, mis pakuvad ranget tüübitamist ilma lisakoodita:
type Colors = "RED" | "GREEN" | "BLUE";
Selline lähenemine vähendab kompileeritud koodi suurust ja parandab loetavust.