Az enum elnevezett konstansok halmazát határozza meg. A TypeScript numerikus és string enumokat támogat.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Az enum elnevezett konstansok halmazát határozza meg. A TypeScript numerikus és string enumokat támogat.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
A legtöbb TypeScript típustól eltérően (amelyek a fordítás során eltűnnek), egy szokásos enum egy JavaScript objektumot bocsát ki a kódodba. Ezért sok csapat a string literalok unionját részesíti előnyben as const-tal, amely tisztán típus-szintű:
// often preferred — zero runtime cost, easy to read in logs
const Status = { Active: "ACTIVE", Inactive: "INACTIVE" } as const;
type Status = typeof Status[keyof typeof Status]; // "ACTIVE" | "INACTIVE"
// or simply:
type Direction = "up" | "down" | "left" | "right";
const enum E { A, B } // inlined at compile time — no runtime object, but has tooling caveats
Az enumok értelmes neveket adnak a rögzített halmazoknak (állapotok, szerepek, irányok) és egy névtérben csoportosítják őket.
De mivel futásidejű kódot generálnak és furcsa viselkedésük van (a numerikus enumokat lazán ellenőrzik), a modern TypeScript gyakran a string-literal unionokat részesíti előnyben az egyszerű esetekre — könnyebbek és természetesen szerializálódnak.
Használj enumokat, ha namespace-eket vagy fordított leképezéseket akarsz.