ES6 déstructuration des objets paramètres par défaut

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

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

Quand je l'appelle 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?

45
demandé sur Quentin Roy 2014-10-27 00:27:17

1 réponses

Oui. Vous pouvez également utiliser "defaults" 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 de déstructuration.

94
répondu Bergi 2016-07-06 07:15:31