O enum definește un set de constante numite. TypeScript are enumerații numerice și cu stringuri.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
O enum definește un set de constante numite. TypeScript are enumerații numerice și cu stringuri.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Spre deosebire de majoritatea tipurilor TypeScript (care dispar la compile time), o enum obișnuită emite un obiect JavaScript în pachetul tău. Acesta este motivul pentru care multe echipe preferă o uniune de literali de string plus as const, care este pur la nivel de tip:
// 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
Enumerațiile dau nume semnificative seturilor fixe (stări, roluri, direcții) și le grupează sub un singur spațiu de nume.
Dar pentru că emit cod la runtime și au particularități (enumerațiile numerice sunt verificate ușor), TypeScript-ul modern adesea favorizează uniuni de literali de string pentru cazurile simple — sunt mai ușoare și se serializează în mod natural.
Folosește enumerații când vrei namespace-ul sau reverse mapping-ul.