2017-01-09 50 views
0

我已经得到了从阵列继承的类:将数组传递给一个扩展操作员参数与打字稿

class List<T> extends Array<T> { 
    constructor(items: T[]) { 
     super(items); // error here... 
    } 
} 

类型的参数“T []”是不能分配给类型T的”参数”。

假设这是因为Array的构造函数有(...的项目:T [])

所以,我如何通过一个标准的数组一些需要传播经营者?

回答

1

该数组构造函数接受任意数量的参数。如果您将一个数组传递给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 
    } 
} 
相关问题