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);
