TypeScript: interface और type में क्या अंतर है? कब क्या उपयोग करें?
सभी को नमस्ते! मैंने TypeScript सीखना शुरू किया और `interface` और `type` के बीच अंतर को लेकर भ्रमित हूँ। दोनों ही ऑब्जेक्ट की संरचना का वर्णन करने की अनुमति देते हैं, लेकिन मुझे समझ नहीं आ रहा कि कब किस टूल का उपयोग करना चाहिए।
मेरा कोड देखें। मैं एक उपयोगकर्ता और उसके पते का वर्णन करने का प्रयास कर रहा हूँ:
```typescript
// interface के साथ विकल्प
interface IUser {
name: string;
age: number;
address: IAddress;
}
interface IAddress {
city: string;
street: string;
}
// type के साथ विकल्प
type TUser = {
name: string;
age: number;
address: TAddress;
}
type TAddress = {
city: string;
street: string;
}
```
दोनों विकल्प काम करते हैं, लेकिन मैंने सुना है कि कुछ मूलभूत अंतर हैं। उदाहरण के लिए, मैंने देखा कि `type` यूनियनों के साथ कुछ कर सकता है, जबकि `interface` नहीं कर सकता। और कुछ प्रोजेक्ट्स में हर चीज़ के लिए `interface` का उपयोग किया जाता है, जबकि अन्य में `type` का।
कृपया बताएं कि वास्तविक अंतर क्या है? अच्छे अभ्यास के नियम क्या हैं? क्या ऐसी स्थितियाँ हैं जहाँ केवल एक का ही उपयोग किया जा सकता है?