मेरे पास एक सामान्य इंटरफ़ेस और दो इंटरफ़ेस "व्यक्ति" और "कर्मचारी" हैं जो पहले वाले का विस्तार करते हैं:
export interface Common {
id: number,
name: string
}
export interface Person extends Common {
age: number;
}
export interface Employee extends Common {
role: string;
}
मुझे इन इंटरफेस के साथ मिश्रित एक सरणी की आवश्यकता है, उदाहरण के लिए यह:
listOfPeople: Person[] | Employee[] = [{id: 1, name: 'George', age: 4}, {id: 2, name: 'Micheal', role: 'software developer'}];
लेकिन इस तरह मुझे एक त्रुटि मिली। मेरी इच्छा का परिणाम प्राप्त करने का सही तरीका क्या है?
2 जवाब
आप संघ प्रकार का उपयोग करके प्रकारों को जोड़ सकते हैं और उन्हें listOfPeople
के प्रकार के रूप में घोषित कर सकते हैं।
तो यह काम करेगा मुझे लगता है
listOfPeople: (Person|Employee)[]
क्योंकि listOfPeople
एक सरणी है जिसमें इनमें से कोई भी हो सकता है। आपको TS को बताना होगा कि यह एक सरणी है।
const listOfPeople: (Person|Employee)[] = [{id: 1, name: 'George', age: 4}, {id: 2, name: 'Micheal', role: 'software developer'}];
इस प्रकार लिखने का एक और (शायद स्पष्ट) तरीका होगा:
listOfPeople: Array<Person | Employee>;
संबंधित सवाल
नए सवाल
typescript
टाइपस्क्रिप्ट जावास्क्रिप्ट का एक टाइप किया हुआ सुपरसेट है जो सादे जावास्क्रिप्ट को संकलित करता है। यह जावास्क्रिप्ट में वैकल्पिक प्रकार, कक्षाएं, इंटरफेस और मॉड्यूल जोड़ता है। यह टैग टाइपस्क्रिप्ट के लिए विशिष्ट प्रश्नों के लिए है। इसका उपयोग सामान्य जावास्क्रिप्ट प्रश्नों के लिए नहीं किया जाता है।