如何在Typescript中设置枚举显示名称?

时间:2017-05-14 07:56:12

标签: javascript typescript

我在Typescript中有以下枚举类型。

enum RoleTypes{
  None,
  Admin,
  SuperAdmin
}

运行代码时

var roleName = RoleTypes[RoleTypes.SuperAdmin];

变量roleName是SuperAdmin,是否可以将其更改为自定义名称'超级管理员'以及我如何执行此操作?

3 个答案:

答案 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 
}