我有一个继承自Array的类:
class List<T> extends Array<T> {
constructor(items: T[]) {
super(items); // error here...
}
}
类型'T []'的参数不能分配给'T'类型的参数。
假设这是因为Array的构造函数需要(...... items:T [])
那么,如何将标准数组传递给采用扩展运算符的东西?
答案 0 :(得分:1)
Array Constructor接受任意数量的参数。如果将数组传入new Array()
,则会将其分配给第一个索引。
const newArray = new Array([1, 2, 3]);
console.log(newArray); // [[1, 2, 3]];
使用spread运算符将数组扩展为参数。
const newArray = new Array(...[1, 2, 3]); // equivalent to new Array(1, 2, 3);
console.log(newArray); // [1, 2, 3];
所以你的课程看起来像这样:
class List<T> extends Array<T> {
constructor(items: T[]) {
super(...items); // Spread operator here
}
}