TypeScript में कई प्रकारों के साथ ऐरे की परिभाषा: union types बनाम tuples
सभी को नमस्कार! मैंने हाल ही में TypeScript सीखना शुरू किया है और विभिन्न प्रकारों के तत्वों वाले ऐरे को घोषित करने में एक समस्या का सामना किया।
मेरे पास एक फंक्शन है जो स्ट्रिंग्स और नंबर्स का ऐरे लेता है। उदाहरण के लिए, मैं एक ही ऐरे में उपयोगकर्ता का ID (नंबर) और नाम (स्ट्रिंग) स्टोर करना चाहता हूँ। मैंने इसे इस तरह करने की कोशिश की:
```typescript
let users = [1, "Alice", 2, "Bob"];
```
TypeScript स्वचालित रूप से `(string | number)[]` प्रकार का अनुमान लगाता है, जो काम करता है। लेकिन बाद में मुझे क्रम को सख्ती से नियंत्रित करने की आवश्यकता हुई: पहले नंबर, फिर स्ट्रिंग। मैंने इस तरह प्रयास किया:
```typescript
let user: [number, string] = [1, "Alice"];
```
यहाँ सब ठीक है। लेकिन अगर मैं ऐसे tuples का ऐरे चाहता हूँ तो क्या करूँ? मैंने लिखा:
```typescript
let users: [number, string][] = [[1, "Alice"], [2, "Bob"]];
```
लेकिन फिर एक और कार्य उत्पन्न हुआ: ऐरे में या तो स्ट्रिंग्स या नंबर्स हो सकते हैं, लेकिन एक ही तत्व में एक साथ नहीं। उदाहरण के लिए, टैग्स की सूची: `["typescript", 42, "javascript", 100]`।
प्रश्न: कैसे