3.1 টাইপ অ্যালিয়াস
টাইপস্ক্রিপ্টে টাইপ অ্যালিয়াস হলো একটি ফিচার যা টাইপগুলির জন্য একটি নামকরণ প্রদান করে। টাইপ অ্যালিয়াস ব্যবহার করে আমরা একটি কাস্টম টাইপ তৈরি করতে পারি যা কোডের বিভিন্ন স্থানে ব্যবহার করা যাবে। এই টাইপগুলি কোড বুঝতে সাহায্য করে।
এটি সাধারণত কমপ্লেক্স টাইপগুলির ক্ষেত্রে ব্যবহার করা হয়, যেমন অবজেক্ট টাইপ, অ্যারে টাইপ ইত্যাদি। টাইপ অ্যালিয়াস একটি নির্দিষ্ট টাইপ ডিফাইন করার জন্য একটি আদর্শ পদ্ধতি প্রদান করে, কোডে যদি অনেকগুলি জায়গায় একই ধরণের টাইপ ব্যবহার করতে হয়, পুনরায় একই কোড লেখার বদলে তখন আমরা সহজেই এটি টাইপ অ্যালিয়াস দিয়ে করতে পারি।
টাইপস্ক্রিপ্টে টাইপ অ্যালিয়াস ডিফাইন করার জন্য type কীওয়ার্ড ব্যবহার করা হয়। এটি একটি নাম প্রদান করে এবং সেই নামের মাধ্যমে আমরা আমাদের কাস্টম টাইপকে পুনরায় ব্যবহার করতে পারি। এটির মাধ্যমে আমরা টাইপগুলির প্রকার, অবজেক্ট প্রোপার্টি, ফাংশন সিগনেচার ইত্যাদি ডিফাইন করতে পারি।
একটি উদাহরণ দেয়া যাক। আমরা একটি অবজেক্ট টাইপ ডিফাইন করতে চাইব। নীচের কোডে Person টাইপটি ডিফাইন করা হয়েছে টাইপ অ্যালিয়াসের মাধ্যমে:
type Person = {
name: string;
age: number;
profession: string;
};
এখানে Person হল টাইপ অ্যালিয়াসের নাম এবং এর মধ্যে আমরা একটি অবজেক্ট টাইপ ডিফাইন করেছি যা name, age, এবং profession প্রোপার্টিগুলি ধারণ করে।
আমরা এই অ্যালিয়াস ব্যবহার করে কিভাবে অবজেক্ট তৈরি করতে পারি তার একটা উদাহরণ দেখা যাক:
const person1: Person = {
name: "Ahmed",
age: 30,
profession: "Programmer"
};
const person2: Person = {
name: "Farid",
age: 25,
profession: "Designer"
};
function printPersonDetails(person: Person) {
console.log(`name: ${person.name}`);
console.log(`age: ${person.age}`);
console.log(`profession: ${person.profession}`);
}
printPersonDetails(person1);
// output:
name: Ahmed
age: 30
profession: Programmer
printPersonDetails(person2);
// output:
name: Farid
age: 25
profession: Designer
উপরে, আমরা Person অ্যালিয়াস ব্যবহার করে দুটি অবজেক্ট person1 এবং person2 তৈরি করেছি। এরপরে, printPersonDetails ফাংশনটি Person টাইপের অবজেক্ট প্যারামিটার হিসেবে গ্রহণ করে এবং সেই টাইপের অবজেক্টের প্রোপার্টিগুলি চেক করে ডিসপ্লে করে।
এভাবে টাইপ অ্যালিয়াস ব্যবহার করে আমরা অনেক কোড পুনরায় লিখার দরকার ছাড়াই কোড রিডেবিলিটি বৃদ্ধি করতে পারি।