TypeScript में इंटरफ़ेस द्वारा प्रकार की जाँच: कैसे निर्धारित करें कि कोई ऑब्जेक्ट इंटरफ़ेस से मेल खाता है?
सभी को नमस्कार! मैंने अभी TypeScript सीखना शुरू किया है और एक समस्या का सामना किया है। मेरे पास एक इंटरफ़ेस `User` है और एक फ़ंक्शन जो API से डेटा लेता है। मुझे जाँच करनी है कि प्राप्त ऑब्जेक्ट इस इंटरफ़ेस से मेल खाता है या नहीं।
यहाँ मेरा कोड है:
```typescript
interface User {
id: number;
name: string;
email: string;
}
function processData(data: unknown) {
// कैसे जाँचें कि data एक User है?
if (data instanceof User) { // त्रुटि: 'User' केवल एक प्रकार को संदर्भित करता है, लेकिन यहाँ एक मान के रूप में उपयोग किया जा रहा है
console.log(data.name);
}
}
```
मैं समझता हूँ कि `instanceof` इंटरफ़ेस के साथ काम नहीं करता क्योंकि वे रनटाइम के दौरान मिट जाते हैं। लेकिन फिर कैसे जाँचें कि ऑब्जेक्ट में सही प्रकारों के साथ सभी आवश्यक फ़ील्ड हैं? मैंने देखा है कि कस्टम type guards का उपयोग किया जा सकता है, लेकिन मैं पूरी तरह से नहीं समझता कि जटिल इंटरफ़ेस के लिए उन्हें सही तरीके से कैसे लिखा जाए। क्या रनटाइम के दौरान प्रकार जाँचने के लिए कोई मानक दृष्टिकोण या सर्वोत्तम अभ्यास है?
कृपया मार्गदर्शन करें।