web-dev-qa-db-fra.com

TypeError non capturé: Impossible de détruire la propriété `nom 'de' non défini 'ou' nul '

La déstructuration d'objet renvoie une erreur en cas de passage d'un objet nul

function test ({name= 'empty'}={}) {
  console.log(name)
}
test(null);

TypeError non capturé: ne peut pas détruire la propriété name de 'non défini' ou 'nul'. au test (: 1: 15) à: 1: 1

3
rahlrokks

Voir les docs :

Les paramètres de fonction par défaut permettent aux paramètres nommés d'être initialisés avec des valeurs par défaut si aucune valeur ou indéfinie n'est transmise.

En d'autres termes, le paramètre par défaut ne sera pas attribué si null est passé:

function fn(arg = 'foo') {
  console.log(arg);
}
fn(null);

Déstructurez plutôt la première ligne de la fonction:

function test (arg) {
  const { name = 'empty' } = arg || {};
  console.log(name)
}
test(null);
2
CertainPerformance