enum definira skup nazvanih konstanti. TypeScript ima numeričke i string enumerate.
ts
{ , , , }
.;
[];
{
= ,
= ,
}
.;
enum definira skup nazvanih konstanti. TypeScript ima numeričke i string enumerate.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Za razliku od većine TypeScript tipova (koji nestaju tijekom kompilacije), obični enum emitira JavaScript objekt u vašoj aplikaciji. Zato mnogi timovi preferiraju union string literala s as const, što je čisto na razini tipa:
// 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
Enumi daju značajna imena fiksnim skupovima (state-ovima, ulogama, smjerovima) i grupiraju ih u jednom namespace-u.
Ali pošto oni generiraju runtime kod i imaju čudnosti (numerički enumumi se slabo provjeravaju), moderni TypeScript često favorizira string-literal union za jednostavne slučajeve — lakši su i prirodno se serijaliziraju.
Koristite enumume kada želite namespace ili obrnuto mapiranje.