En enum definerer et sæt navngivne konstanter. TypeScript har numeriske og string enum.
ts
{ , , , }
.;
[];
{
= ,
= ,
}
.;
En enum definerer et sæt navngivne konstanter. TypeScript har numeriske og string enum.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
I modsætning til de fleste TypeScript-typer (som forsvinder ved kompilering) udsender en almindelig enum et JavaScript-objekt til dit bundle. Det er derfor mange teams foretrækker en union af string literals plus as const, som udelukkende er på type-niveau:
// 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 giver meningsfulde navne til faste sæt (tilstande, roller, retninger) og grupperer dem under et namespace.
Men fordi de udsender runtime kode og har særheder (numeriske enum er løst kontrolleret), foretrækker moderne TypeScript ofte string-literal unions for simple tilfælde — de er lettere og serialiseres naturligt.
Brug enum, når du ønsker namespace eller reverse mapping.