# टाइप एलियास बनाम इंटरफ़ेस — TypeScript Fundamentals

Source: https://www.skillbyai.com/hi/typescript/ts-type-aliases-vs-interfaces

> Type aliases और interfaces की तुलना करें, जिसमें extends, intersections और declaration merging शामिल हैं, और सही चुनें।

## टाइप एलियास

`type`, **किसी भी** टाइप को नाम देता है — ऑब्जेक्ट, यूनियन, ट्यूपल, प्रिमिटिव।

```typescript
type Point = { x: number; y: number };
type Id = string | number;

const origin: Point = { x: 0, y: 0 };
```

## extends बनाम &

इंटरफ़ेस `extends` से जुड़ते हैं और बाद में **दोबारा खोले** जा सकते हैं (डिक्लेरेशन मर्जिंग)। टाइप एलियास `&` (इंटरसेक्शन) से जुड़ते हैं और घोषित होने के बाद दोबारा नहीं खुलते।

## कौन-सा चुनें

ऑब्जेक्ट आकार के लिए (ख़ासकर पब्लिक API में) डिफ़ॉल्ट रूप से `interface` उपयोग करें; यूनियन, ट्यूपल या कंप्यूटेड टाइप की ज़रूरत हो तो `type` उपयोग करें।

**Quiz:** इनमें से कौन `string | number` जैसे यूनियन टाइप को नाम दे सकता है?

- [ ] केवल interface
- [x] केवल type
- [ ] दोनों में से कोई नहीं
- [ ] केवल `enum`

*Answer:* केवल type. इंटरफ़ेस केवल ऑब्जेक्ट आकार बता सकते हैं; यूनियन के लिए `type` एलियास चाहिए।
