enum inafafanua seti ya constants zilizo na jina. TypeScript ina numeric enums na string enums.
ts
{ , , , }
.;
[];
{
= ,
= ,
}
.;
enum inafafanua seti ya constants zilizo na jina. TypeScript ina numeric enums na string enums.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Takilafu na TypeScript types nyingi (ambazo hupotea wakati wa compilation), enum ya kawaida inatoa JavaScript object kwenye bundle yako. Ndiyo sababu timu nyingi zinapendelea union ya string literals pamoja na as const, ambayo ni aina tu:
// 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
Enums hutoa majina ya maana kwa seti za kudumu (states, roles, directions) na kuzigroupisha chini ya namespace moja.
Lakini kwa sababu yeye hutoa runtime code na ina tabia zisizotaka (numeric enums zimekaguliwa vibaya), TypeScript ya sasa mara nyingi inapendelea string-literal unions kwa kesi rahisi — ni nyepesi na kurekebisha data bila matatizo.
Tumia enums wakati unataka namespacing au reverse mapping.