当无效数量的参数传递给函数时,我(仅)使用arguments
引发错误。
const myFunction = (foo) => {
if (arguments.length !== 1) {
throw new Error('myFunction expects 1 argument');
}
}
不幸的是,在TypeScript中,在箭头函数中引用时出现错误The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.
。
如何(始终)验证TypeScript中的参数数量?
答案 0 :(得分:2)
您发布的代码段对我来说似乎没有相同的错误。如果将其更改为箭头函数,我会看到该错误:
const myFunction = (foo) => {
if (arguments.length !== 1) {
throw new Error('myFunction expects 1 argument');
}
}
您可以尝试执行以下操作:
const myFunction = (...foo) => {
if (foo.length !== 1) {
throw new Error('myFunction expects 1 argument');
}
}
要解决此问题。
答案 1 :(得分:2)
您还可以在编译时强制执行函数的功能:
const myFunction = (...args: [any]) => {
/* ... */
}
myFunction(1); // OK
myFunction(1, 2); // Compile-time error