【问题标题】:How to dynamically get the value of an object with a key that is stored in a variable如何使用存储在变量中的键动态获取对象的值
【发布时间】:2020-03-21 03:26:53
【问题描述】:

我在 Typescript 中有一个对象,我正在尝试动态更改键的字符串。以下没有按预期工作。它会引发以下 Typescript 错误:

元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型

'{ key1: string; key2: 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”。

提前致谢。 :)

【问题讨论】:

    标签: javascript typescript types


    【解决方案1】:

    也许这有帮助

    var o = { key1: 'value1', key2: 'value2' };
    let c: keyof typeof o = 'key2'
    var val = o[c];
    

    【讨论】:

      【解决方案2】:

      如果你想动态改变key,你应该创建如下动态接口[key: string]是动态key

      <-------
      interface Example {
         [key: string]: string
      }
      ------->
      
      var o: Example = { key1: 'value1', key2: 'value2' };
      var val = o[c];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 2022-12-02
        • 2021-03-10
        • 2014-10-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多