Code
client.createPet(pet, (err, {name, breed, age}) => {
if (err) {
return t.error(err, 'no error')
}
t.equal(pet, {name, breed, age}, 'should be equivalent')
})
Erreur
client.createPet(pet, (err, {name, breed, age}) => {
^
TypeError: Cannot match against 'undefined' or 'null'.
Pourquoi est-ce que je reçois cette erreur? Ma connaissance de ES6 m'a amené à présumer que cette erreur ne devrait se produire que si le tableau ou l'objet à déstructurer ou ses enfants est undefined
ou null
.
Je n'étais pas au courant que les paramètres de fonction sont utilisés comme une correspondance. Et s’ils le sont, pourquoi s’agit-il seulement d’une erreur si j’essaie de déstructurer l’un d’eux? (ce n'est pas undefined
ou null
).
cette erreur ne devrait se produire que si le tableau ou l'objet en cours de déstructuration ou ses enfants est
undefined
ounull
.
Exactement. Dans votre cas, l'objet à déstructurer est soit undefined
ou null
. Par exemple,
function test(err, {a, b, c}) {
console.log(err, a, b, c);
}
test(1, {a: 2, b: 3, c: 4});
// 1 2 3 4
test(1, {});
// 1 undefined undefined undefined
test(1);
// TypeError: Cannot match against 'undefined' or 'null'.