web-dev-qa-db-fra.com

Angular quelle est la signification de trois points dans @NGRX

que signifie exactement ces trois points et pourquoi en ai-je besoin?

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

Les trois points sont connus sous le nom de opérateur d'étalement de TypeScript (également de ES7 ).

L'opérateur spread renvoie tous les éléments d'un tableau. Comme si vous écriviez chaque élément séparément:

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

Il s'agit principalement de sucre syntaxique car il compile ceci:

func(...args);

pour ça:

func.apply(null, args);

Dans votre cas, cela se compile comme suit:

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

Le ... ( ( opérateur de propagation ) fonctionne en renvoyant chaque valeur de l'index 0 indexer length-1:

2
Rahul Singh