Enum definiuje zestaw nazwanych stałych. TypeScript ma enumeracje liczbowe i stringowe.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Enum definiuje zestaw nazwanych stałych. TypeScript ma enumeracje liczbowe i stringowe.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
W przeciwieństwie do większości typów TypeScript (które znikają w momencie kompilacji), zwykły enum emituje obiekt JavaScript do Twojego pakietu. Dlatego wiele zespołów preferuje unię literałów stringowych plus as const, która jest czysto na poziomie typów:
// 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
Enumeracje nadają znaczące nazwy stałym zestawom (stany, role, kierunki) i grupują je w jedną przestrzeń nazw.
Ale ponieważ emitują kod w czasie wykonywania i mają osobliwości (enumeracje liczbowe są słabo sprawdzane), nowoczesny TypeScript często faworyzuje uniom literałów stringowych w prostych przypadkach — są lżejsze i serializują się naturalnie.
Używaj enumeracji, gdy chcesz nazw przestrzeni lub mapowania odwrotnego.