एक यूनियन (A | B) का मतलब है "A या B।" एक इंटरसेक्शन (A & B) का मतलब है "A और B दोनों एक साथ।"
ts
= | | ;
: = ;
() { }
एक यूनियन (A | B) का मतलब है "A या B।" एक इंटरसेक्शन (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
}
जब तक आप एक यूनियन को संकीर्ण न करें, आप केवल उन सदस्यों तक पहुंच सकते हैं जो यूनियन के हर सदस्य पर मौजूद हैं — कंपाइलर आपकी सुरक्षा करता है।
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
इंटरसेक्शन ऑब्जेक्ट प्रकारों को संयोजित/मिश्रित करने के लिए बहुत अच्छे हैं (उदा. किसी मौजूदा प्रकार में props जोड़ना)।
यूनियन "कई संभावनाओं में से एक" को मॉडल करते हैं — सुरक्षित स्थिति मॉडलिंग की नींव (उदा. रिड्यूसर स्थिति के लिए विभेदक यूनियन), फ़ंक्शन ओवरलोड, और nullable प्रकार (T | null)।
इंटरसेक्शन प्रकारों को एक साथ संयोजित करते हैं।
एक साथ, वे TypeScript की प्रकार प्रणाली को वास्तविक डेटा को सटीक रूप से प्रतिबिंबित करने के लिए पर्याप्त अभिव्यक्तिशील बनाते हैं।