Typescript 接口错误地扩展了接口 第一类{ 控件:{[key:string]:number}; } 接口2扩展了接口1{ 控件:{[key-in-keyof-T]:number} }

Typescript 接口错误地扩展了接口 第一类{ 控件:{[key:string]:number}; } 接口2扩展了接口1{ 控件:{[key-in-keyof-T]:number} },typescript,interface,Typescript,Interface,我得到一个错误: TS2430:接口“2”错误地扩展了接口“1”。 属性“控件”的类型不兼容。 类型“{[key-in-keyof-T]:number;}”不能分配给类型“{[key:string]:number;}” 在typescript操场()中,一切似乎都很好。发生了什么事 Typescript版本:2.4.2这是2.4中的一个问题,在2.5中得到了修复。你可以看一看。2.4中基本上不允许这样做,2.5中明确允许: keyof T上的映射类型是具有字符串索引签名的类型的子类型 class

我得到一个错误:

TS2430:接口“2”错误地扩展了接口“1”。 属性“控件”的类型不兼容。 类型“{[key-in-keyof-T]:number;}”不能分配给类型“{[key:string]:number;}”

在typescript操场()中,一切似乎都很好。发生了什么事


Typescript版本:2.4.2

这是2.4中的一个问题,在2.5中得到了修复。你可以看一看。2.4中基本上不允许这样做,2.5中明确允许:

keyof T上的映射类型是具有字符串索引签名的类型的子类型

class One {
  controls: { [key: string]: number };
}

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