我有一个字符串枚举,其值应与显示名称相关联,如下所示:
enum MyEnum {
key1 = 'one',
key2 = 'two',
key3 = 'three',
}
const myKey: MyEnum = 'two' as MyEnum; // This value is only known at runtime
const lookupResult = {
[MyEnum.key1]: 'display name for key1',
[MyEnum.key2]: 'display name for key2',
}[myKey];
但我使用查找对象会产生此错误:
TS7017:元素隐含地有一个'任何'输入因为类型' { [MyEnum.key1]:string; [MyEnum.key2]:string; }'没有索引 签名。
如何在没有错误的情况下将myKey
与其显示名称匹配?
我可能根本不使用枚举吗?在各种情况下,我需要枚举值和显示名称。
答案 0 :(得分:0)
只需使用枚举密钥。
enum MyEnum {
key1 = 'one',
key2 = 'two',
key3 = 'three',
}
const lookupResult = {
[MyEnum.key1]: 'display name for key1',
[MyEnum.key2]: 'display name for key2',
}[MyEnum.key2];