我使用express,我知道你可以做以下设置请求处理程序的类型。
router.get("/", <RequestHandler> function (req, res, next) {
//Manage request here
});
有没有办法对箭头函数做同样的事情?我知道我可以只指定每个参数的类型,但我认为这有点冗长。
我知道这行得通
router.get("/", (req: Request, res: Response, next: NextFunction) => {
//Manage request here
});
但这样的事情能成功吗?
router.get("/", <RequestHandler>(req, res, next) => {
//Manage request here
});
对于每个参数,我都得到以下错误。
参数“req”隐式具有“any”类型。
3条答案
按热度按时间qvtsj1bj1#
使用箭头函数时,必须用圆括号将整个函数表达式括起来,以避免语法问题。
as
的另一个选项另一种选择是,事先将回调声明为独立变量,从而完全避免类型Assert
wpcxdonn2#
如果您使用的是Typescript 4.9+,则可以使用
satisfies
关键字:wixjitnu3#
尝试这样做:
<RequestHandler<{type1; type2; type3}>>
或者您可以创建单独的接口