enum نام سے موسوم ثابتوں کا ایک مجموعہ متعارف کراتا ہے۔ TypeScript میں عددی enums اور string enums ہیں۔
{ , , , }
.;
[];
{
= ,
= ,
}
.;
enum نام سے موسوم ثابتوں کا ایک مجموعہ متعارف کراتا ہے۔ TypeScript میں عددی enums اور string enums ہیں۔
{ , , , }
.;
[];
{
= ,
= ,
}
.;
زیادہ تر TypeScript کی اقسام کے برعکس (جو compile کے وقت غائب ہوجاتے ہیں)، ایک عام enum آپ کے bundle میں ایک JavaScript object جاری کرتا ہے۔ یہی وجہ ہے کہ بہت سی ٹیمیں string literals کی union کو as const کے ساتھ ترجیح دیتی ہیں، جو خالصتاً type-level ہے:
// 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 مقررہ سیٹوں (states, roles, directions) کو معنی خیز نام فراہم کرتے ہیں اور انہیں ایک namespace میں گروپ بندی کرتے ہیں۔
لیکن کیونکہ وہ رن ٹائم کوڈ تیار کرتے ہیں اور عجیب خصوصیات رکھتے ہیں (عددی enums ڈھیلے چیک ہوتے ہیں)، جدید TypeScript اکثر سادہ معاملات کے لیے string-literal unions کو ترجیح دیتا ہے — وہ ہلکے ہوتے ہیں اور قدرتی طور پر سیریلائز ہوتے ہیں۔
جب آپ namespace یا reverse mapping چاہتے ہوں تو enums استعمال کریں۔