如何使第二个参数可选并使用解构?
到目前为止,这有效,但有点难看。还有什么更好的吗?
const fn = (required, optional = {id: undefined, name: undefined}) => {
const {id, name} = optional
console.log(required, id, name)
}
fn('hello') // hello undefined undefined
fn('hello', {id: 'world'}) // hello world undefined
fn('hello', {name: 'world'}) // hello undefined world
我发现这是针对打字稿Optional deconstruction function parameter,但我不认为我可以在没有TS的情况下应用解决方案。
答案 0 :(得分:2)
与您在ES6中找到的打字稿解决方案相同的方法也是如此:
function fn(required, {id, name} = {}) {
console.log(required, id, name)
}
使用解构表达式作为默认参数的目标,而不是optional
。此外,我已使用undefined
删除了显式属性初始化,只使用空对象,因为默认值正常。