Avatar ·

كيفية توسيع كائن Request في Express باستخدام TypeScript

مرحبًا بالجميع! أنا أكتب backend على Express مع TypeScript وواجهت مشكلة في كتابة أنواع كائن 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: 'لا يوجد توكن' }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET!) as UserPayload; req.user = decoded; // خطأ TypeScript: الخاصية 'user' غير موجودة في النوع 'Request' next(); } catch (error) { return res.status(403).json({ message: 'توكن غير صالح' }); } }; ``` TypeScript يشتكي من أن كائن Request لا يحتوي على الخاصية 'user'.