web-dev-qa-db-ja.com

ES6オブジェクトのデフォルトパラメータの破壊

オブジェクトが部分的に定義されていることを心配せずに、デフォルトのパラメーターのオブジェクトの構造化を使用する方法があるかどうかを把握しようとしています。以下を考慮してください。

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

たとえば、これを{a: "qux"}で呼び出すと、本当に欲しいのはqux undefinedであるときに、コンソールにqux barが表示されます。オブジェクトのすべてのプロパティを手動で確認せずにこれを達成する方法はありますか?

58
user3019273

はい。破壊にも「デフォルト」を使用できます。

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

これは関数のパラメーターに制限されませんが、すべての構造化式で機能します。

116
Bergi