A union (A | B) म्हणजे "एक्सकर्सिव्ह A किंवा B." An intersection (A & B) म्हणजे "एकसाथ A आणि B दोन्ही."
ts
= | | ;
: = ;
() { }
A union (A | B) म्हणजे "एक्सकर्सिव्ह A किंवा B." An intersection (A & B) म्हणजे "एकसाथ A आणि B दोन्ही."
= | | ;
: = ;
() { }
function format(x: string | number) {
// x.toFixed(2); // ❌ toFixed doesn't exist on string
if (typeof x === "number") return x.toFixed(2); // ✅ narrowed to number
return x.toUpperCase(); // ✅ here it's a string
}
जोपर्यंत आपण union narrow करत नाही, तोपर्यंत आपण फक्त त्या सदस्यांना प्रवेश करू शकता जे union च्या प्रत्येक सदस्यावर उपस्थित आहेत — कंपाइलर आपल्याला संरक्षण करतो.
type Name = { name: string };
type Age = { age: number };
type Person = Name & Age; // must have BOTH name and age
const p: Person = { name: "Ann", age: 30 }; // both required
Intersection ऑब्जेक्ट प्रकार एकत्र करणे/मिसळणे साठी उत्तम आहेत (उदा. विद्यमान प्रकारात props जोडणे).
Union "अनेक संभाव्यतांपैकी एक" मॉडेल करतो — सुरक्षित स्टेट मॉडलिंगचा आधार (उदा. reducer state साठी discriminated unions), फंक्शन overloads, आणि nullable types (T | null).
Intersection एकत्रितपणे प्रकार एकत्र करतो.
एकत्रितपणे ते TypeScript च्या प्रकार प्रणालीला वास्तविक डेटा अचूकपणे प्रतिबिंबित करण्यासाठी पर्याप्त अभिव्यक्त बनवतात.