angular - 反向映射字符串枚举 Angular 4

标签 angular typescript enums

我有一个字符串枚举:

export enum TokenLength {
  SIX = '6',
  EIGHT = '8',
}

我需要获取字符串“SIX”或“EIGHT”,因此反向映射此枚举。 我试过很多东西:

tokenLength = TokenLength;      

for (var enumMember in this.tokenLength) {
    console.log("enum member: ", enumMember); //result: enum member:  SIX , enum member:  EIGHT
}

for (var enumMember in this.tokenLength) {
    console.log("enum member: ", this.tokenLength[enumMember]); //result: enum member:  6, enum member:  8
}

这似乎工作得很好,但每当我执行以下操作时,它都不起作用。

console.log(this.tokenLength['SIX']); //result: 6
console.log(this.tokenLength.SIX); //result: 6
console.log(this.tokenLength[this.tokenLength.SIX]); //result: undefined
console.log(this.tokenLength['6']); //result: undefined
console.log(this.tokenLength[0]); //result: undefined

我需要“未定义”结果为“六”我该怎么做?提前致谢。

最佳答案

您可以查看 typescript 文档。 typescript

 enum Enum {
        A
  }
  let a = Enum.A;
  let nameOfA = Enum[a]; // "A"

要使其以这种方式工作,您必须删除枚举中的引号:

enum TokenLength {
      SIX = 6,
      EIGHT = 8
}

希望对你有帮助

关于angular - 反向映射字符串枚举 Angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734662/

相关文章:

javascript - Angular 输入范围 slider 对十进制数据绑定(bind)值进行四舍五入

typescript 错误: jwt.解码不是函数

java - 将字节转换为枚举

angular - angular2 项目中的类型是什么?

angular - 在 angular-google-maps 中旋转标记

Angular 路由到同一组件的多条路径

javascript - 如何在 Angular 4 Material 的 Stepper 中提交表单

typescript - 迭代 Typescript 中的枚举项

c# - 为什么受 'Enum' 约束的泛型类型在 C# 7.3 中不符合 'struct' 的条件?

c++ - 具有重复的枚举器值