箭头函数:解构参数并同时将它们作为一个整体获取

arrow functions: destructuring arguments and grabbing them as a whole at the same time

我们能否同时对 ES6 中的箭头函数进行解构:({a, b}) => ( a + b ) 和获取参数:(...args) => ( f({...args}) )

正在寻找类似 (...args = {a, b}) => ( a + b + f({...args}) ) 的内容。

我目前的解决方案是:

({a, b}) => {
  const {...args} = {a, b}
  return a + b + f({...args})
}

不过是多余的 或(感谢 nnnnnn 和德米特里)

(args) => {
  const {a, b} = args
  return a + b + f({...args})
}

它没有那么多余而且肯定更好,但仍然不完全令人满意。

如果你的意思是 f 也接受命名参数,那么为什么不直接使用:

(params) => {
  const { a, b } = params
  return a + b + f(params)
}

您可以在第一个参数的解构赋值目标处使用默认参数和对象 rest,其中需要单个对象,并且可以选择通过解构先前定义的对象参数来定义后续参数

const fn = ({...args} = {}, {a, b} = args) => console.log(a, b, args);