Enum definira niz poimenovanih konstant. TypeScript ima številske instring nabore.
ts
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Enum definira niz poimenovanih konstant. TypeScript ima številske instring nabore.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Za razliko od večine vrst TypeScript (ki med prevajanjem izginejo), navaden enum v vaš paket oddaja JavaScript objekt. Zato mnoge ekipe raje uporabljajo unijo stringovnih literalov plus as const, ki je čisto na ravni tipov:
// 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
Nabori dajejo smiselna imena fiksnim naborom (stanja, vloge, smeri) in jih razvrščajo pod en imenik.
Ampak ker oddajajo kodo med izvajanjem in imajo posebnosti (številski nabori se ohlapno preverjajo), moderan TypeScript pogosto daje prednost uniji stringovnih literalov za enostavne primere — so lažji in se naravno serializirajo.
Uporabite nabore, kadar želite imenski prostor ali obratno preslikavo.