Domyślne parametry destrukcji obiektów ES6

Próbuję dowiedzieć się, czy istnieje sposób na użycie destrukcji obiektów domyślnych parametrów bez martwienia się o to, że obiekt jest częściowo zdefiniowany. Rozważmy następujące:

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

Kiedy wywołuję to za pomocą {a: "qux"}, na przykład, widzę qux undefined w konsoli, kiedy to, czego naprawdę chcę, to qux bar. Czy istnieje sposób, aby to osiągnąć bez ręcznego sprawdzania wszystkich właściwości obiektu?

Author: Quentin Roy, 2014-10-27

1 answers

Tak. Możesz również użyć "defaults"w destrukcji:

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

Nie jest to ograniczone do parametrów funkcji, ale działa w każdym wyrażeniu destrukcyjnym.

 94
Author: Bergi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-06 07:15:31