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 回答
这是2.4中的问题,在2.5中得到修复 . 你可以看一下GitHub issue . 基本上在2.4中这是不允许的,在2.5中明确允许: