Node.js 在这里使用@ts ignore可以吗?
我正在使用带有express的typescript。当我调用Node.js 在这里使用@ts ignore可以吗?,node.js,typescript,express,Node.js,Typescript,Express,我正在使用带有express的typescript。当我调用mongoose模型的findById时,我得到的类型是SomeModel | null 我有一个快速处理程序,如下所示:- async function myHandler(req: Request, res: Response, next: NextFunction) { try { let model = await myModel.findById(req.params.id); if (
mongoose模型的findById
时,我得到的类型是SomeModel | null
我有一个快速处理程序,如下所示:-
async function myHandler(req: Request, res: Response, next: NextFunction) {
try {
let model = await myModel.findById(req.params.id);
if (!model) {
//forward to 404 handler
next();
}
res.send({
//@ts-ignore
model: model.someFunc()
});
}
catch (err) {
next(err);
}
}
我在这里禁止使用typescript编译器
,因为控件永远不会使用null
值到达res.send
。但是有没有一种优雅的方式告诉tsc呢?或者在这里使用/@ts ignore
可以吗?仍然会发生res.send
调用。您是否缺少返回
或其他{
这里?如果没有return
语句,它会发生吗?当我调用next时,它会转到下一个处理程序,在我的例子中,它是404
处理程序,返回未找到。当我添加return:)时,错误消失了。我不明白。如果model
为null
,那么你调用next()
。next()
是否引发异常?如果没有,则在next()
返回后,myHandler
将继续调用空值的model.someFunc()
。这就是TypeScript所抱怨的。