我在Typescript中有一个对象,我试图动态地改变键的字符串。下面的代码没有像预期的那样工作。它抛出以下Typescript错误:
元素隐式具有“”any“”类型,因为“”string“”类型的表达式不能用于索引类型
'{ key1: string; key2: string; }'.在类型上找不到参数类型为'string‘的索引签名
'{ key1: string; key2: string; }'.ts(7053)let c:string='key2'
var o = { key1: 'value1', key2: 'value2' };
var val = o[c]; //should return 'value2'如果我将变量c改为'key1',它应该返回'value1‘。
提前谢谢。:)
发布于 2020-03-21 11:39:35
也许这对你有帮助
var o = { key1: 'value1', key2: 'value2' };
let c: keyof typeof o = 'key2'
var val = o[c];发布于 2020-03-21 12:01:34
如果你想要动态改变密钥,你应该创建动态接口,如下所示[key: string]是动态密钥
<-------
interface Example {
[key: string]: string
}
------->
var o: Example = { key1: 'value1', key2: 'value2' };
var val = o[c];https://stackoverflow.com/questions/60784178
复制相似问题