2017-01-09 7 views
0

で広がりオペレータパラメータに配列を渡す:タイプの私は配列から継承するクラスを持っている活字体

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

引数は「Tは[]」型「Tのパラメータに割り当て可能ではありません'

アレイのコンストラクタがかかるため、これがあると仮定すると、(...の項目は:Tは、[])

だから、どのように私は、拡散演算子を取り、何かに標準配列を渡すのですか?

答えて

1

Arrayコンストラクタは、任意の数のパラメータをとります。 new Array()に配列を渡すと、最初のインデックスに割り当てられます。

const newArray = new Array([1, 2, 3]); 
console.log(newArray); // [[1, 2, 3]]; 

拡散演算子を使用して、配列をパラメータに展開します。

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 
    } 
} 
関連する問題