对象内部的等号解构大括号

Equal sign inside object destructuring curly braces

我在 Graphql 指令定义中看到了这个语句:

const { resolve = defaultFieldResolver } = field;

我知道 const { resolve } = field; 部分意味着获取 field 对象的 resolve 属性 并将其存储在局部变量 resolve 中。但我第一次遇到的是 = defaultFieldResolver 部分。等号在这里做什么?我已经进行了彻底的 google 搜索,但也许我不知道要搜索的正确关键字,或者这可能是新的关键字。

Here's 我看到这篇文章的 link。

非常感谢。

这意味着如果field包含一个resolve 属性,提取它:

const defaultFieldResolver = 'defaultFieldResolver';

const field = { resolve: 'resolve' };

const { resolve = defaultFieldResolver } = field;

console.log(resolve);

如果 field 不包含 resolve 属性,请将 defaultFieldResolver 分配给 resolve 变量。

const defaultFieldResolver = 'defaultFieldResolver';

const field = {};

const { resolve = defaultFieldResolver } = field;

console.log(resolve);