Vivasoft-logo

3.3 ইন্টারসেকশন টাইপ

টাইপস্ক্রিপ্টে ইন্টারসেকশন টাইপ হলো কোনো টাইপের একটি সমন্বয় যা দুই বা ততোধিক টাইপের সংযোগ বা মিশ্রণ। অর্থাৎ টাইপস্ক্রিপ্ট দিয়ে আমরা শুধু আলাদা আলাদা টাইপ ছাড়াও কয়েকটা টাইপের কম্বিনেশনের মধ্যেমেও একটি টাইপ বানাতে পারি। 

ইন্টারসেকশন টাইপের সিনট্যাক্স হলো Type1 & Type2 যেখানে Type1 এবং Type2  হলো একই বা বিভিন্ন টাইপের নাম। এই ভাবে নতুন একটি টাইপ তৈরি করা হয় যা কয়েকটি টাইপের সমন্বয়। মনে করুন আপনার একটি টাইপ আছে যা নাম্বার টাইপ এবং আরেকটি আছে অবজেক্ট টাইপ এই দুইটি টাইপের সংমিশ্রনে নতুন একটি টাইপ বানিয়ে ফেলা যায়। ইন্টারসেকশন টাইপ ব্যবহার করে আপনি সেই টাইপের মেম্বারগুলিকে নিতে পারবেন অর্থাৎ এটির মাধ্যমে আপনি উভয় টাইপের মেম্বারগুলি অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি দেখা যাক:

				
					type NumberObject = {
numberValue: number;
};


type Person = {
name: string;
age: number;
};


type IntersectionType = NumberObject & Person;


const intersectionObj: IntersectionType = {
numberValue: 10,
name: "John",
age: 25,
};



				
			

উপরের উদাহরণে, IntersectionType টাইপটি NumberObject এবং Person টাইপের সমন্বয়ে গঠিত, সুতরাং, IntersectionType অবজেক্টটি মেম্বার হিসাবে numberValue, name, এবং age প্রপার্টিগুলোকে নিবে। 

মনেকরি, একটি Book টাইপ যেখানে একটি বইয়ের বিবরণ সংরক্ষণ করার জন্য একটি টাইপ ডিফাইন করা হয়েছে যা বইয়ের শিরোনাম, লেখকের নাম এবং মূল্য নিবে । আরও একটি টাইপ Magazine ডিফাইন করা হয়েছে যা সংবাদপত্রের বিবরণ নির্দেশ করে যা সংবাদপত্রের শিরোনাম, সম্পাদকের নাম এবং তারিখ নিবে।  ইন্টারসেকশন টাইপ ব্যবহার করে আপনি এই দুটি টাইপের সমন্বয়ের হিসাবে একটি নতুন টাইপ তৈরি করতে পারেন। নীচের উদাহরণ দেখুন:

				
					type Book = {
title: string;
author: string;
price: number;
};


type Magazine = {
title: string;
editor: string;
date: string;
};


type Publication = Book & Magazine;


const publication: Publication = {
title: "Amar Bangla Boi",
author: "Mehedi Hasan",
price: 200,
editor: "Viva Prokashoni",
date: "01-01-2023",
};

				
			

উপরের উদাহরণে, Publication টাইপটি অবজেক্ট Book এবং Magazine টাইপের সমন্বয়ের তৈরী হয়েছে। এখানে দেখা যাচ্ছে, Publication অবজেক্টটি মেম্বার হিসাবে title, author, price, editor, এবং date প্রপার্টিগুলি নিচ্ছে। এটি একটি ইন্টারসেকশন টাইপ যা দুটি টাইপ সংযোগ করে নতুন একটি টাইপ তৈরি করে।