Enum apibrėžia pavadintas konstancias. TypeScript turi skaitinius ir string enumus.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Enum apibrėžia pavadintas konstancias. TypeScript turi skaitinius ir string enumus.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Skirtingai nei daugelis TypeScript tipų (kurie išnyksta kompiliavimo metu), regularus enum išskleidžia JavaScript objektą į jūsų paketą. Todėl daugelis komandų naudoja string literalų junginį su as const, kuris yra tik tipo lygmenyje:
// 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
Enumai suteikia prasmingus pavadinimus fiksuotiems rinkiniams (būsenos, vaidmenys, kryptys) ir juos sugrupuoja po viena vardine erdve.
Bet kadangi jie generuoja runtime kodą ir turi keblumų (skaitiniai enumai yra švelniai tikrinami), šiuolaikinis TypeScript dažnai naudoja string literalų junginius paprastiems atvejams — jie yra lengvesni ir natūraliai serializuojasi.
Naudokite enumus, kai norite vardų erdvės arba atvirkštinio srauto.