enum განსაზღვრავს დასახელებული მუდმივებების ნაკრებს. TypeScript-ში არის რიცხვითი და სტრიქონური enum-ები.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
enum განსაზღვრავს დასახელებული მუდმივებების ნაკრებს. TypeScript-ში არის რიცხვითი და სტრიქონური enum-ები.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
მაქაბელი TypeScript-ის უმეტესობა (რომელიც ქრება კომპილაციის დროს), ჩვეულებრივი enum ინერგება JavaScript ობიექტი თქვენს bundle-ში. ამიტომ ბევრი გუნდი ურჩევნია სტრიქონური ლიტერალების გაერთიანება პლუს as const, რომელიც არის წერტილოვანი ტიპის დონე:
// 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-ები აძლევენ მნიშვნელოვან სახელებს ფიქსირებული ნაკრებებში (მდგომარეობები, როლი, მიმართულებები) და აჯგროვებენ მათ ერთი namespace-ის ქვეშ.
იმ გამო, რომ ისინი აწარმოებენ runtime კოდს და აქვთ უცნაურობები (რიცხვითი enum-ები დაბალი ხელმოწერაა), თანამედროვე TypeScript ხშირად ამჯობინებს სტრიქონური ლიტერალების გაერთიანებებს მარტივი შემთხვევებისთვის — ისინი უფრო მსუბუქი არიან და ბუნებრივად სერიალიზდებიან.
გამოიყენეთ enum-ები, როდესაც გინდათ namespacing ან reverse mapping.