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

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

> टाइप को नाम देने के दो तरीक़े, छोटे पर असली अंतर के साथ।

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

`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
- [ ] दोनों में से कोई नहीं

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