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
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);