إعادة تعريف نوع خاصية واجهة مُعلنة في ملف .d.ts من TypeScript
مرحباً بالجميع! أنا مبتدئ في TypeScript وقد واجهت مشكلة أثناء العمل مع المكتبات الخارجية. لدي مكتبة (مثل `express` أو `mongoose`) تُعرِّف في ملفات تعريف الأنواع الخاصة بها (`.d.ts`) واجهة، لنقل `Request`. في هذه الواجهة توجد خاصية `user` والتي يكون نوعها الافتراضي `any` أو `Express.User | undefined`. أحتاج إلى إعادة تعريف هذه الخاصية في مشروعي ليكون لها نوع محدد، مثلاً `{ id: string; name: string; role: 'admin' | 'user' }`.
المشكلة هي أنني لا أستطيع ببساطة تعديل ملف `.d.ts` الخاص بالمكتبة - فهذه ممارسة سيئة، وعند تحديث المكتبة ستفقد تعديلاتي. حاولت إنشاء واجهة خاصة بي توسع الواجهة الأصلية، لكن TypeScript يشتكي من تضارب الأنواع أو لا يرى إعادة التعريف الخاصة بي.
إليك مثال على الكود:
```typescript
// في node_modules/@types/express/index.d.ts (افتراضياً)
interface Request {
user?: any;
// ... خصائص أخرى
}
// ملفي types/express.d.ts
import {