我有这个简单的功能:
const something = ({params: {large, small}, ...rest}) => {
// large and small is used here
// then:
otherFunction(rest);
}
我的问题是params
具有otherFunction
和rest
所需要的其他参数。请注意,我不允许为otherFunction
创建第二个参数。
是否有一种简单,优雅的解决方案将params
属性保留在rest
中?还是我必须写与restParams
合并的rest
?
答案 0 :(得分:-1)
类似的事情应该起作用。只需将两个对象合并在一起即可。
const something = (params, rest) => {
let obj = {...params, ...rest}
// large and small is used here
// then:
otherFunction(obj);
}
答案 1 :(得分:-1)
我看到两个选择
正如jonrsharpe中提到的the comments一样,如果您需要变量处于原始状态,请不要在参数中使用解构。使用简单参数并在函数中单独使用解构分配以获取所需的值:
const something = (args) => {
const { params: { large, small } } = args;
console.log(small);
console.log(large);
console.log(args);
}
something({
params: {
large: 3,
small: 2
},
test: "value",
test2: 2
});
或者您可以将箭头函数更改为函数表达式,然后使用arguments
获取最初的第一个参数:
const something = function({params: {large, small}, ...rest}) {
console.log(small);
console.log(large);
console.log(arguments[0]);
}
something({
params: {
large: 3,
small: 2
},
test: "value",
test2: 2
});