TypeScript এ Tuple হল একটি বিশেষ ধরনের ডেটা স্ট্রাকচার যা একটি নির্দিষ্ট সংখ্যক এবং ধরনের মান ধারণ করতে সক্ষম। এটি সাধারণত ব্যবহার হয় যখন আপনি একাধিক উপাদান ধারণ করতে চান যেগুলির প্রতিটির আলাদা টাইপ থাকতে পারে। Array এর মতো হলেও Tuple এ প্রতিটি উপাদানের টাইপ নির্দিষ্ট করা যায়।
Tuples কী?
Tuple হলো এক ধরনের Array যেখানে একাধিক ডেটা টাইপের মান একত্রিত করা যায়। যদিও অ্যারে সাধারণত একই ধরনের উপাদান ধারণ করে, Tuple বিভিন্ন টাইপের মান ধারণ করতে পারে। TypeScript এ আপনি Tuple-এর আকার এবং টাইপ স্পষ্টভাবে ডিফাইন করতে পারেন।
Tuple সাধারণত ব্যবহৃত হয় এমন পরিস্থিতিতে যেখানে আপনাকে একটি নির্দিষ্ট স্থানে নির্দিষ্ট টাইপের মান রাখা প্রয়োজন, যেমন একটি ২ উপাদানের তালিকা যেখানে প্রথমটি স্ট্রিং এবং দ্বিতীয়টি সংখ্যা হতে পারে।
Tuple এর সিনট্যাক্স
Tuple-এর উপাদানগুলো ডিফাইন করা হয় অ্যারে সাদৃশ ভাবে, তবে প্রতিটি উপাদানের টাইপ নির্দিষ্ট করা হয়। সাধারণত কমা (,) দিয়ে উপাদানগুলো পৃথক করা হয়।
উদাহরণ:
let person: [string, number] = ["John", 30];
এখানে, person একটি Tuple, যেখানে প্রথম উপাদানটি string এবং দ্বিতীয় উপাদানটি number।
Tuple এর বৈশিষ্ট্য
- নির্দিষ্ট আকার: Tuple এর প্রতিটি উপাদান একটি নির্দিষ্ট টাইপ ধারণ করে এবং নির্দিষ্ট আকারে থাকে। যদি আপনি Tuple এর মধ্যে ভুল ধরনের ডেটা রাখেন, TypeScript ত্রুটি দেখাবে।
- মিশ্রিত টাইপ: Tuple বিভিন্ন টাইপের ডেটা ধারণ করতে সক্ষম। যেমন, একটি Tuple এর প্রথম উপাদানটি
stringএবং দ্বিতীয়টিnumberহতে পারে। - অ্যারে ইন্ডেক্সিং: Tuple এর উপাদানগুলো অ্যারে ইন্ডেক্সের মাধ্যমে অ্যাক্সেস করা যায়, তবে টাইপ সঠিকভাবে ব্যবহৃত হতে হবে।
Tuple ব্যবহার উদাহরণ
১. স্ট্যাটিক সাইজ এবং টাইপের Tuple
let person: [string, number] = ["John", 30]; // Valid
let product: [string, number, boolean] = ["Laptop", 999.99, true]; // Valid
এখানে, person একটি Tuple যেটি একটি string এবং একটি number ধারণ করে। product একটি Tuple যেটি তিনটি উপাদান ধারণ করে: string, number এবং boolean।
২. Tuple এ মান অ্যাক্সেস করা
Tuple এর উপাদানগুলো অ্যারে সাদৃশভাবে অ্যাক্সেস করা যায়:
let person: [string, number] = ["John", 30];
console.log(person[0]); // Output: John
console.log(person[1]); // Output: 30
৩. Tuple এ মান পরিবর্তন করা
Tuple এর মান পরিবর্তন করা যেতে পারে, তবে প্রতিটি উপাদানের টাইপ অনুযায়ীই তা করা যাবে:
let person: [string, number] = ["John", 30];
person[0] = "Jane"; // Valid
person[1] = 35; // Valid
// person[1] = "Thirty"; // Error: Type 'string' is not assignable to type 'number'
এখানে, person[0] এবং person[1] এর মান সঠিক টাইপে পরিবর্তন করা হয়েছে।
Tuple এর অন্যান্য বৈশিষ্ট্য
১. অপশনাল এলিমেন্টস (Optional Elements)
Tuple এ আপনি কিছু উপাদানকে ঐচ্ছিক (optional) বানাতে পারেন। এটি TypeScript 4.0 এ নতুন ফিচার হিসেবে যোগ করা হয়েছে।
let person: [string, number?] = ["John"]; // Valid
person = ["Jane", 25]; // Valid
এখানে, number? অংশটি ঐচ্ছিক, মানে এটি থাকা বাধ্যতামূলক নয়।
২. Rest Elements (নতুন টাইপস্ক্রিপ্ট সংস্করণে)
Tuple এর মধ্যে rest elements ব্যবহার করে আপনি একাধিক উপাদান একসাথে রাখতে পারেন। এটি একটি ফাংশনে ব্যবহৃত হয় যেখান থেকে একাধিক উপাদান ফিরিয়ে আনা হয়।
let numbers: [string, ...number[]] = ["first", 1, 2, 3, 4];
console.log(numbers); // Output: ["first", 1, 2, 3, 4]
এখানে, প্রথম উপাদানটি string এবং বাকি উপাদানগুলি number[] টাইপের।
Tuple এর ব্যবহার
১. ফাংশনে Tuple প্যারামিটার
TypeScript এ ফাংশনে Tuple প্যারামিটার ব্যবহার করা খুবই কার্যকর, বিশেষ করে যখন একাধিক মান ফাংশনে পাঠানো হয় যেগুলোর টাইপ আলাদা।
function printPersonDetails(person: [string, number]) {
console.log(`Name: ${person[0]}, Age: ${person[1]}`);
}
let person: [string, number] = ["John", 30];
printPersonDetails(person); // Output: Name: John, Age: 30
২. ফাংশন থেকে Tuple রিটার্ন
আপনি ফাংশন থেকে Tuple রিটার্নও করতে পারেন:
function getPerson(): [string, number] {
return ["John", 30];
}
let person = getPerson();
console.log(person[0]); // Output: John
console.log(person[1]); // Output: 30
সারাংশ
- Tuple হল একটি ডেটা স্ট্রাকচার যা বিভিন্ন টাইপের মান ধারণ করতে সক্ষম।
- এটি সাধারণত Array এর মতো ব্যবহৃত হয় তবে এখানে প্রতিটি উপাদানের টাইপ স্পষ্টভাবে ডিফাইন করা হয়।
- TypeScript এ Tuple ব্যবহার করে আপনি একটি নির্দিষ্ট সংখ্যা এবং টাইপের উপাদান একত্রিত করতে পারেন।
- Tuple এ অপশনাল এলিমেন্টস এবং rest elements ব্যবহার করা যেতে পারে, যা আরো সুবিধাজনক এবং নমনীয়ভাবে কোড লেখার সুযোগ দেয়।
এটি TypeScript এর একটি শক্তিশালী বৈশিষ্ট্য যা টাইপ সেফটি এবং কোডের ক্লিয়ারিটি বৃদ্ধি করে।
Read more