2017-01-09 51 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 
    } 
} 
相關問題