首页 文章

接口错误地扩展接口

提问于
浏览
1
class One {
  controls: { [key: string]: number };
}

interface Two<T> extends One {
  controls: { [key in keyof T]: number }
}

我收到一个错误:

TS2430:接口'Two'错误地扩展了接口'One' . 属性“控件”的类型是不兼容的 . 输入'{[keyof T中的键]:number; }'不能赋值为'{[key:string]:number; }”

在打字稿操场(click),一切似乎都没问题 . 它发生了什么?

打字稿版本:2.4.2

1 回答

  • 0

    这是2.4中的问题,在2.5中得到修复 . 你可以看一下GitHub issue . 基本上在2.4中这是不允许的,在2.5中明确允许:

    使用字符串索引签名的keyof T [are]子类型的映射类型

相关问题