我知道这是一个纯JavaScript基本错误,但我出错了。我试图像这样包装我的createError
函数:
export const throwError = error => {
return createError(error, {
message: 'This is my error'
});
}
然后:
throw new (throwError ('Error')); // #1 This works
throw new throwError ('Error'); // #2 This doesn't work without paranthesis
如何在不包含()
的情况下运行它。为什么不起作用?是否可以在我的return new createError..
函数中使用throwError
(不起作用)?
答案 0 :(得分:1)
我认为你应该做
export const MyError = createError('Error', {
message: 'This is my error'
});
throw new MyError(); // parenthesis optional here
如果您确实需要动态传递Error
参数(这对性能不利,因为它会创建许多不同的类),那么您真的不能避免在围绕构造函数的调用周围加上括号。更明确地写出来,它是这样的:
throw new (throwError('Error'))(); // equivalent to:
const error = throwError('Error');
throw new error();