2017-09-15 11 views
2

正確にはこれら3つのドットを意味し、なぜそれらが必要なのですか?@NGRXの3ドットの意味角度

export function leadReducer(state: Lead[]= [], action: Action { 
    switch(action.type){ 
     case ADD_LEAD: 
      return [...state, action.payload]; 
     case REMOVE_LEAD: 
      return state.filter(lead => lead.id !== action.payload.id) 
} 
} 

答えて

5

3個のドットを(もES7から)活字体からspread operatorとして知られています。

spread演算子は配列のすべての要素を返します。これに

func(...args); 

:あなたのケースでは

func.apply(null, args); 

これはにコンパイルされることは、このコンパイルとして

let myArr = [1, 2, 3]; 
return [1, 2, 3]; 
//is the same as: 
return [...myArr]; 

これは主に、単に構文糖です:あなたは、各要素を個別に書きますと同じようにこれは

return [...state, action.payload]; 
//gets compiled to this: 
return state.concat([action.payload]); 
+2

ですそのオブジェクトではない配列の作業。 – alexKhymenko

+0

@alexKhymenko通知ありがとう:) – Wernerson

1

...spread operator)インデックスlength-1にインデックス0から各値を返すことによって動作:

関連する問題