web-dev-qa-db-ja.com

Angular @NGRXの3つのドットの意味

これら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 )
}
}
21
Anouar Mokhtari

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]);
32
Wernerson

...spread operator )は、インデックス0インデックスへlength-1

2
Rahul Singh