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 )
}
}
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]);
Le ...
( ( opérateur de propagation ) fonctionne en renvoyant chaque valeur de l'index 0
indexer length-1
: