একটি ইউনিয়ন (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
ইন্টারসেকশনগুলি অবজেক্ট টাইপ সংযোজন/মিশ্রণের জন্য দুর্দান্ত (যেমন বিদ্যমান টাইপে প্রপস যোগ করা)।
ইউনিয়নগুলি "বেশ কয়েকটি সম্ভাবনার মধ্যে একটি" প্রতিনিধিত্ব করে — নিরাপদ অবস্থা মডেলিং (যেমন রিডিউসার অবস্থার জন্য বিচ্ছেদিত ইউনিয়ন), ফাংশন ওভারলোড এবং নাল্লেবল টাইপের ভিত্তি (T | null)।
ইন্টারসেকশনগুলি টাইপগুলিকে একসাথে সংযুক্ত করে।
এক সাথে তারা TypeScript এর টাইপ সিস্টেমকে এত প্রকাশনীয় করে তোলে যে এটি বাস্তব ডেটা নির্ভুলভাবে প্রতিফলিত করতে পারে।