如何使用 ES6 中的所有默认值解构选项参数?

IT技术 javascript ecmascript-6 destructuring
2021-03-06 07:11:27

我在 babel 编译器中使用 ES6 特性。我有一个将选项对象作为参数的函数:

function myFunction({ option1 = true, option2 = 'whatever' }) {
    console.log(option1, option2);
    // do something...
}

当我调用它时,解构发生并且一切正常。大多数时候我想用默认选项调用它,所以我这样做:

myFunction({}); // true 'whatever'

但看起来有点奇怪。只需调用它会更干净:

myFunction(); // TypeError: Cannot read property 'option1' of undefined

是否可以?

1个回答

是的,您只需要为完整参数提供一个默认值

function myFunction({option1 = true, option2 = 'whatever'} = {}) {
//                                                         ^^^^
    console.log(option1, option2);
    // do something...
}