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

How to destructure option argument with all default values in ES6?

我使用带有 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

可以吗?

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

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