【问题标题】:Cannot use Record<keyof T, string> as index to a dictionary in TypeScript不能使用 Record<keyof T, string> 作为 TypeScript 中字典的索引
【发布时间】:2021-04-02 11:47:32
【问题描述】:

我有如下界面:

interface Car {
    color?: string;
    model?: string;
}

我想创建一个方法来接收该字典的键并检索值:

function retrieveValue(car: Car, key: Record<keyof Car, string>) {
    return car[key];
}

return 行失败:

键入'记录' 不能作为索引类型.ts(2538)

我不是很直观地理解我的错误在哪里。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    您不需要使用Record&lt;...&gt; 语法。相反,您可以简单地使用:

    function retrieveValue(car: Car, key: keyof Car) {
        return car[key];
    }
    

    【讨论】:

      【解决方案2】:

      我认为您正在寻找 keyof 而不是 Record

      function retrieveValue(car: Car, key: keyof Car) {
          return car[key];
      }
      

      Record 执行something else

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-05
        • 2022-11-30
        • 2021-02-22
        • 2020-01-02
        • 2021-05-21
        相关资源
        最近更新 更多