ค้นหาเว็บไซต์

javascript - สมาชิกของ enum สามารถตั้งชื่อเล่นใน TypeScript ได้อย่างไร?


ฉันมี enum ดังต่อไปนี้ใน TypeScript:

enum RoleTypes {
  None,
  Admin,
  SuperAdmin
}

เมื่อฉันรันโค้ดต่อไปนี้:

var roleName = RoleTypes[RoleTypes.SuperAdmin];

ค่าของตัวแปร roleName คือ SuperAdmin.

มันสามารถเปลี่ยนเป็นชื่อที่กำหนดเอง 'Super Administrator' ได้หรือไม่ และฉันจะทำอย่างไร?

คำตอบ #1

ใช่ เพียงแค่สร้างชื่อทางเลือกโดยใช้ตัวระบุที่อยู่ในเครื่องหมายอัญประกาศ

enum RoleTypes {
 None,
 Admin,
 SuperAdmin,
 'Super Administrator' = SuperAdmin 
}

คำตอบ #2

คุณสามารถใช้วัตถุหรืออาร์เรย์แยกต่างหากสำหรับสิ่งนี้ (Playground):

enum RoleTypes {
    None,
    Admin,
    SuperAdmin
}

let RoleTypesDisplay: { [index: number]: string } = {};
RoleTypesDisplay[RoleTypes.None] = "None";
RoleTypesDisplay[RoleTypes.Admin] = "Administrator";
RoleTypesDisplay[RoleTypes.SuperAdmin] = "Super Administrator";

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin];
alert(roleName);

// because RoleTypes is a number based enum that starts with 0 this is equals to 
RoleTypesDisplay = ["None", "Administrator", "Super Administrator"];

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin];
alert(roleName);

บทความที่เกี่ยวข้อง