假设我有一个函数将一个destructured对象作为箭头函数中的参数:
const myFunc = ({a, b, c}) => {
};
无论如何还是语法允许我将整个对象作为单个值获取?由于箭头函数不绑定arguments
,我不能使用它。
是否可以对其进行命名,类似于:
const myFunc = (allArgs: {a, b, c}) => {
console.log(allArgs);
};
myFunc({a:1, b:2, c:3}); // Output: {a:0, b:1, c: 2}
显然,这不是一个交易破坏者,并且有很多变通办法(要么不使用箭头功能,不要破坏,或者在需要时重新创建对象),但我想知道为方便起见。
答案 0 :(得分:7)
你可以很容易地构造一个单一的参数。你在参数中失去了简洁的解构语法的优势,但它很容易而且仍然清晰:
const myFunc = (allArgs) => {
const {a, b, c} = allArgs;
console.log(allArgs);
};
或者,考虑是否需要箭头功能。如果您不需要访问词汇this
,那么一个好的老式function() {}
就可以解决问题并让您访问arguments
。
答案 1 :(得分:-1)
你太近了。使用等号而不是冒号来命名参数。
const myFunc = (allArgs = {a, b, c}) => {
console.log(allArgs);
};
myFunc({a:1, b:2, c:3}); // Output: {"a":1, "b":2, "c": 3}

修改强>
我只是帮助使用命名参数语法,以便值可用。
如果你想破坏论证,你可以这样做:
const myFunc = ({a, b, c}) => {
console.log(a);
console.log(b);
console.log(c);
};
myFunc({a:1, b:2, c:3}); // Output: {"a":1, "b":2, "c": 3}