TypeScript में interface और type में क्या अंतर है और कब क्या उपयोग करें?
सभी को नमस्ते! मैंने अभी-अभी TypeScript सीखना शुरू किया है और ऑब्जेक्ट की संरचना का वर्णन करने के दो तरीकों पर ध्यान दिया: `interface` और `type`। पहले मुझे लगा कि ये एक ही हैं, लेकिन बाद में देखा कि कुछ स्थितियों में ये अलग-अलग व्यवहार करते हैं।
यहाँ एक उदाहरण है। मैं `interface` के माध्यम से ऐसे लिख सकता हूँ:
```typescript
interface User {
name: string;
age: number;
}
```
या `type` के माध्यम से ऐसे:
```typescript
type User = {
name: string;
age: number;
};
```
जब मैं कोई ऑब्जेक्ट बनाता हूँ तो दोनों विकल्प समान रूप से काम करते हैं:
```typescript
const user: User = { name: 'Alex', age: 30 };
```
लेकिन फिर मैंने दो प्रकारों को मर्ज करने की कोशिश की। `interface` के साथ मैं बस उसी नाम से दूसरा interface लिख सकता हूँ, और वे मर्ज हो जाते हैं:
```typescript
interface User {
email: string;
}
// अब User के पास name, age और email है
```
जबकि `type` के साथ मुझे एक त्रुटि मिली: "Duplicate identifier 'User'"। तब मैंने प्रकारों के लिए `&` (intersection) के बारे में जाना, लेकिन यह एक अलग सिंटैक्स है।
इसके अलावा, मैंने सुना है कि `type` कर सकता है