【发布时间】:2020-03-23 09:35:27
【问题描述】:
我正在尝试向 Array 原型添加一个简单的通用函数,但 TypeScript 给我一个关于我没有得到的类型的错误。
interface Array<T> {
pluck<T, TKey extends keyof T>(this: T[], key: TKey): T[TKey][];
}
Array.prototype.pluck = function pluck<T, TKey extends keyof T>(this: T[], key: TKey): T[TKey][] {
return this.map(item => item[key]);
}
这是一个 Codesandbox:https://codesandbox.io/s/typescript-playground-export-3oww1?fontsize=14&hidenavigation=1&theme=dark
感谢您的帮助:)
【问题讨论】:
-
只是省略你的函数实现的类型,你已经通过接口声明输入了它
-
请把相关代码放在本题中,方便以后访问的人使用。
-
不要那样做,只需创建您的新数组,它将扩展原始数组。一般来说,你不应该覆盖任何原型,当然也不应该覆盖核心。
标签: typescript typescript-generics