首页 > 解决方案 > TypeScript - 字符串键接口的属性不作为字符串类型传递

问题描述

我遇到了将键定义为字符串的接口的问题。它的属性不能传递给接受字符串类型的函数。我已将其简化为最简单的情况。

游乐场链接

interface Props {
  [key: string]: any
}

function setPropInternal(prop : string, value : any) : void {}

function setProp<T extends keyof Props>(prop: T, value: Props[T]) : void {
  // Why does this throw an error if key is defined as a string? (line 2)
  // Error at prop:
  //  Argument of type 'T' is not assignable to parameter of type 'string'.
  //   Type 'string | number' is not assignable to type 'string'. 
  //    Type 'number' is not assignable to type 'string'.
  setPropInternal(prop, value);
}

标签: typescript

解决方案


推荐阅读