Avatar ·

如何使用TypeScript扩展Express中的Request对象

大家好!我正在用TypeScript写Express后端,遇到了Request对象的类型化问题。 我有一个middleware,在认证后向请求中添加用户数据。我大致是这样做的: ```typescript import { Request, Response, NextFunction } from 'express'; import jwt from 'jsonwebtoken'; interface UserPayload { id: string; email: string; role: 'admin' | 'user'; } export const authMiddleware = (req: Request, res: Response, next: NextFunction) => { const token = req.headers.authorization?.split(' ')[1]; if (!token) { return res.status(401).json({ message: '没有token' }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET!) as UserPayload; req.user = decoded; // TypeScript错误:类型'Request'上不存在属性'user' next(); } catch (error) { return res.status(403).json({ message: '无效的token' }); } }; ``` TypeScript报错,说Request对象上