我在Typescript中有以下枚举类型。
enum RoleTypes{
None,
Admin,
SuperAdmin
}
运行代码时
var roleName = RoleTypes[RoleTypes.SuperAdmin];
变量roleName是SuperAdmin,是否可以将其更改为自定义名称'超级管理员'以及我如何执行此操作?
答案 0 :(得分:5)
从TypeScript 2.4 you can assign字符串值开始直接枚举成员
enum RoleTypes{
None = "None",
Admin = "Administrator",
SuperAdmin = "Super Administrator"
}
另见here
答案 1 :(得分: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);
答案 2 :(得分:1)
是的,只需使用带引号的标识符
创建别名即可enum RoleTypes {
None,
Admin,
SuperAdmin,
'Super Administrator' = SuperAdmin
}