我有一个字符串枚举:
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/