Lors du développement de mon application React, j'avais besoin d'envoyer un accessoire conditionnel à un composant.J'ai donc trouvé un modèle pour le faire, même si cela me semble vraiment bizarre et je ne pouvais pas comprendre comment et pourquoi cela fonctionnait.
Si je tape:
console.log(...undefined) // Error
console.log([...undefined]) // Error
console.log({...undefined}) // Work
Lorsque l'opérateur de propagation est activé sur indéfini, une erreur est générée, bien que lorsque l'indéfini se trouve à l'intérieur d'un objet, un objet vide est retourné.
Je suis assez surpris de ce comportement, est-ce vraiment comme ça qu'il est censé être, puis-je m'y fier et est-ce une bonne pratique?
Ce comportement est utile pour faire quelque chose comme étalement optionnel :
function foo(options) {
const bar = {
baz: 1,
...(options && options.bar) //options and bar can be undefined
}
}
Et c'est encore mieux avec chaînage optionnel , qui est dans stage-1
:
function foo(options) {
const bar = {
baz: 1,
...options?.bar //options and bar can be undefined
}
}
une pensée: c'est dommage ça ne marche pas aussi pour se propager dans un tableau