gpt4 book ai didi

javascript - 检查 module.exports 中函数是否有多个参数

转载 作者:行者123 更新时间:2023-12-01 03:59:23 25 4
gpt4 key购买 nike

我想做这样的事情:

module.exports = (obj) => {
if (arguments.length > 1) {
throw new Error('Must only pass in single argument');
}
}

当我记录参数时,我获取有关模块本身的元数据,但看不到传入的参数。有没有办法检查是否传入了其他参数?

这是我的测试:

it('should reject multiple arguments', () => {
expect(fn({ data: 1}, { data: 2})).to.throw(Error, 'Too many inputs');
});

最佳答案

MDN's page on arrow function备注:

An arrow function expression has a shorter syntax than a function expression and does not bind its own this, arguments, super, or new.target.

换句话说,要检查箭头函数是否获得比预期更多的参数,使用 arguments 不起作用(与普通函数一样),因此您应该使用 rest parameters :

const fn = (obj, ...restArgs) => {
if(restArgs.length > 0) {
// got more arguments than expected
throw new Error('Must only pass in single argument');
}
};

关于javascript - 检查 module.exports 中函数是否有多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42322131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com