【发布时间】:2019-12-29 09:10:14
【问题描述】:
有没有办法在打字稿中获取枚举的名称,例如nameof(FirstEnum)?以下代码有一个丑陋的 if 开关,每次定义新枚举时都必须扩展它。在打字稿中是否有更通用的方法来实现相同的目标?
enum FirstEnum {
First = 0,
Second = 1,
Third = 2,
}
enum SecondEnum {
One,
Two,
}
function translateEnum(type$, val): string {
let lookupKey = '';
if (type$ === FirstEnum) {
lookupKey = `firstenum.${FirstEnum[val]}`;
} else if (type$ === SecondEnum) {
lookupKey = `secondenum.${SecondEnum[val]}`;
} else {
throw new Error('not supported');
}
//lookupkey example: secondenum.One
const result = ''; //translate here, ex. await translationService.translate(lookupkey);
return result;
}
translateEnum(SecondEnum , SecondEnum.One);
【问题讨论】:
标签: typescript