接口错误地扩展接口
Posted
技术标签:
【中文标题】接口错误地扩展接口【英文标题】:Interface incorrectly extends interface 【发布时间】:2018-11-28 06:29:55 【问题描述】:class One
controls: [key: string]: number ;
interface Two<T> extends One
controls: [key in keyof T]: number
我收到一个错误:
TS2430:接口“二”错误地扩展了接口“一”。 属性“控件”的类型不兼容。 键入 ' [key in keyof T]:数字; ' 不可分配给类型 ' [key: string]: number; '
在打字稿游乐场 (click) 中,一切似乎都还好。这是怎么回事?
打字稿版本:2.4.2
【问题讨论】:
【参考方案1】:这是 2.4 中的一个问题,在 2.5 中得到了修复。你可以看看GitHub issue。基本上在 2.4 中这是不允许的,在 2.5 中是明确允许的:
keyof T
上的映射类型 [是] 具有字符串索引签名的类型的子类型
【讨论】:
以上是关于接口错误地扩展接口的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript 错误“接口 'NodeBuffer' 错误地扩展了接口 'Uint8Array'”
命名空间“React”没有导出成员“InputHTMLAttributes”并且接口“MenuItemProps”错误地扩展了接口“ListItemProps”
错误:node_modules/@types/jasmine/index.d.ts:668:15 - 错误 TS2430:接口 'FunctionMatchers<Fn>' 错误地扩展了接
当我在 vue.js 中 npm runbuild 得到错误接口 'NodeRequire' 不能同时扩展类型 'Require'