Enum definuje sadu pojmenovaných konstant. TypeScript má číselné a řetězcové enum.
ts
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Enum definuje sadu pojmenovaných konstant. TypeScript má číselné a řetězcové enum.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Na rozdíl od většiny TypeScript typů (které zmizí v čase kompilace), běžné enum vypouští JavaScript objekt do vašeho balíku. Proto mnoho týmů upřednostňuje unii řetězcových literálů spolu s as const, což je čistě na úrovni typů:
// 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
Enum dávají smysluplné názvy pevným sadám (stavy, role, směry) a seskupují je v jednom jmenném prostoru.
Ale protože generují runtime kód a mají specifika (číselné enum jsou volně kontrolovány), moderní TypeScript často upřednostňuje unii řetězcových literálů pro jednoduché případy — jsou lehčí a přirozeně se serializují.
Používejte enum, když chcete jmenný prostor nebo obrácené mapování.