我想向 Array 类添加一些函数(我不想将它们作为类外部的函数,因为理想情况.
下,在对象后面键入时可以发现它们)。这是我到目前为止所拥有的:
export class List<T> extends Array<T> {
constructor(items?: Array<T>) {
super(...items)
Object.setPrototypeOf(this, List.prototype);
}
get first(): T {
return this[0]
}
}
这运行良好:
const list = new List([1,2,3]);
console.log(list.first)
但是如果我尝试运行它:
const list = new List([1,2,3]);
console.log(list.map(x=>x*2))
我收到以下错误:
super(...items)
^
TypeError: Found non-callable @@iterator
理想情况下,我会得到一个相当于new List(this.map(x=>x*2))
如何扩展 Array 类而无需重写 Array 的所有方法的对象?