web-dev-qa-db-fra.com

Paramètres par défaut de la déstructuration d'objet ES6

J'essaie de comprendre s'il existe un moyen d'utiliser la déstructuration d'objet des paramètres par défaut sans se soucier de la définition partielle de l'objet. Considérer ce qui suit:

(function test({a, b} = {a: "foo", b: "bar"}) {
  console.log(a + " " + b);
})();

Quand j'appelle ça avec {a: "qux"}, par exemple, je vois qux undefined dans la console quand ce que je veux vraiment c'est qux bar. Existe-t-il un moyen d'y parvenir sans vérifier manuellement toutes les propriétés de l'objet?

58
user3019273

Oui. Vous pouvez également utiliser des "valeurs par défaut" dans la déstructuration:

(function test({a = "foo", b = "bar"} = {}) {
  console.log(a + " " + b);
})();

Ceci n'est pas limité aux paramètres de fonction, mais fonctionne dans chaque expression destructurante.

116
Bergi