TypeScript .d.ts फ़ाइल में घोषित इंटरफ़ेस के प्रॉपर्टी प्रकार को ओवरराइड करना
सभी को नमस्कार! मैं 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 {