これら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 )
}
}
3つのドットは、 スプレッド演算子 TypeScriptから(および ES7 から)として知られています。
スプレッド演算子は、配列のすべての要素を返します。各要素を別々に書くように:
let myArr = [1, 2, 3];
return [1, 2, 3];
//is the same as:
return [...myArr];
これはほとんどこれをコンパイルするための単なる構文糖です:
func(...args);
これに:
func.apply(null, args);
あなたの場合、これはこれにコンパイルされます:
return [...state, action.payload];
//gets compiled to this:
return state.concat([action.payload]);
...
( spread operator )は、インデックス0
インデックスへlength-1
: