当使用 Passport JS 时,路由中的
在上述TypeScript代码中,因为user.id可能未定义,所以会抛出一个错误。
我可以做类似这样的操作:
req.user
可能会被视为未定义。但是,在我的路由方法之前的中间件确保这不是问题。如何告诉 TypeScript 这一点?
对象可能未定义。
示例:someMethod = async (req: Request, res: Response) => {
const { user } = req
const userId: number = user.id
}
在上述TypeScript代码中,因为user.id可能未定义,所以会抛出一个错误。
我可以做类似这样的操作:
if (!user) return
const userId: number = user.id
但是我认为在我的方法中反复重复这段代码并不是最好的做法,因为中间件已经在路由方法之前执行了这个操作。
user?.id
。 - painotpi//@ts-ignore
。如果您想要比这更优雅的解决方案,您需要扩展Express.Request
接口。 - glinda93