JavaScript函数中的可选解构参数

4

我有这个函数签名

const foo = (arg, { opt1, opt2, opt3 }) => {
   ...
};

但是我希望这个第二个参数是可选的,例如像调用函数一样

foo("Hello");

然而,遇到了如下错误:

TypeError: 无法解构 'undefined' 或 'null' 的属性 opt1

因此,我想通过更改函数来解决这个问题,例如:

const foo = (arg, options = {}) => {
   const { opt1, opt2, opt3 } = options;

   ...
};

但我想知道是否有更好的内联替代方法?

3个回答

13

你可以同时分配一个默认对象和进行解构。

如果没有第二个参数或者其值为undefined,则所有三个解构属性的结果都为undefined

const foo = (arg, { opt1, opt2, opt3 } = {}) => {
   ...
};

6
你可以做到以下几点:
const foo = (arg, { opt1, opt2, opt3 } = {}) => {

   ...
};

6

声明函数时,可以使用{ opt1, opt2, opt3 } = {}来实现此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接