TypeScript Enums এবং Tuples

টাইপস্ক্রিপ্ট (Typescript) - Web Development

267

TypeScript এ Enums এবং Tuples দুটি গুরুত্বপূর্ণ ডেটা টাইপ। Enums ব্যবহার করে নির্দিষ্ট মানের একটি সেট তৈরি করা যায়, যা কোডের মধ্যে প্রাসঙ্গিক কনস্ট্যান্টের জন্য একটি শক্তিশালী টাইপ সিস্টেম সরবরাহ করে। Tuples ব্যবহার করে একাধিক টাইপের ডেটা একত্রে সংরক্ষণ করা সম্ভব হয়, যেখানে প্রতিটি উপাদানের টাইপ আলাদা হতে পারে।


১. Enums (এনাম)

Enums (এনাম) TypeScript এ একটি বিশেষ ধরনের ডেটা টাইপ যা আপনাকে কাস্টম নামের সেট তৈরি করতে সহায়তা করে। এটি সাধারণত প্রাসঙ্গিক কনস্ট্যান্ট মানগুলিকে সংজ্ঞায়িত করতে ব্যবহৃত হয়।

এনাম তৈরি করা

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let move: Direction = Direction.Up;
console.log(move); // Output: 1

এখানে:

  • enum Direction দিয়ে একটি এনাম তৈরি করা হয়েছে যেখানে Up, Down, Left, এবং Right নামের চারটি কনস্ট্যান্ট মান রয়েছে।
  • Direction.Up এর মান 1 এবং অন্যান্য কনস্ট্যান্টগুলো অটোমেটিক্যালি তার পরবর্তী মানগুলো গ্রহণ করে। অর্থাৎ Direction.Down = 2, Direction.Left = 3, এবং Direction.Right = 4

এনাম কাস্টম মানের সাথে ব্যবহার করা

এনামের মান কাস্টমাইজও করা যেতে পারে:

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT"
}

let move: Direction = Direction.Left;
console.log(move); // Output: LEFT

এখানে, Direction এনামটি স্ট্রিং মানের সাথে ব্যবহৃত হয়েছে।

এনাম এবং কিপেল (Reverse Mapping)

TypeScript এ আপনাকে এনামের নামও ফিরিয়ে আনতে দেয় (যেটিকে রিভার্স ম্যাপিং বলে)। উদাহরণস্বরূপ:

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let directionName = Direction[2]; 
console.log(directionName); // Output: Down

এখানে, Direction[2] দিয়ে আপনি Down নামটি ফেরত পাচ্ছেন, যেটি Direction এনামের জন্য দ্বিতীয় মান।


২. Tuples (টুপলস)

Tuples হলো একটি ডেটা স্ট্রাকচার যা একাধিক উপাদান ধারণ করতে পারে, এবং প্রতিটি উপাদানের টাইপ আলাদা হতে পারে। টুপলস আপনাকে বিভিন্ন ডেটা টাইপ একত্রে সংরক্ষণ করার অনুমতি দেয়। এটি অ্যারে থেকে আলাদা, কারণ অ্যারেতে সব উপাদানের একই টাইপ থাকতে হয়।

টুপল তৈরি করা

let person: [string, number] = ["John", 30];
console.log(person); // Output: ["John", 30]

এখানে, person নামক টুপলটির প্রথম উপাদান একটি স্ট্রিং ("John") এবং দ্বিতীয় উপাদান একটি সংখ্যা (30)।

টুপলের উপাদান অ্যাক্সেস করা

টুপলের উপাদান অ্যাক্সেস করা অনেকটা অ্যারে এর মতো:

let person: [string, number] = ["Jane", 25];
console.log(person[0]); // Output: Jane
console.log(person[1]); // Output: 25

টুপলের দৈর্ঘ্য

টুপলের দৈর্ঘ্য নির্ধারণের ক্ষেত্রে টুপলটি একাধিক উপাদান ধারণ করতে পারে, তবে এর দৈর্ঘ্য স্ট্যাটিক (ফিক্সড) থাকে।

let person: [string, number, string] = ["Alice", 28, "Engineer"];
console.log(person.length); // Output: 3

টুপল টাইপ ডেফিনিশন

টুপলের মধ্যে বিভিন্ন টাইপের ডেটা রাখতে টাইপ ডেফিনিশন করা যায়:

let employee: [number, string, boolean] = [1, "Alice", true];

এখানে, employee টুপলে প্রথম উপাদান একটি সংখ্যা, দ্বিতীয়টি একটি স্ট্রিং এবং তৃতীয়টি একটি বুলিয়ান।

অপশনাল এবং রেস্ট প্যারামিটার

TypeScript টুপলস এ অপশনাল উপাদান এবং রেস্ট প্যারামিটারও সমর্থন করে:

let employee: [number, string?, boolean?] = [1, "Alice"];
console.log(employee); // Output: [1, "Alice"]

let values: [string, ...number[]] = ["Numbers", 1, 2, 3, 4];
console.log(values); // Output: ["Numbers", 1, 2, 3, 4]

এখানে:

  • string? এবং boolean? টুপলের মধ্যে অপশনাল মান নির্দেশ করে।
  • ...number[] ব্যবহার করে একাধিক সংখ্যার মান গ্রহণ করা হয়।

সারাংশ

  • Enums TypeScript এ কনস্ট্যান্ট মানের একটি সেট তৈরি করতে সহায়তা করে। এটি টাইপ সেফটি নিশ্চিত করতে ব্যবহৃত হয় এবং রিভার্স ম্যাপিং সহ নানা সুবিধা প্রদান করে।
  • Tuples বিভিন্ন ধরনের ডেটা একত্রে স্টোর করতে ব্যবহার হয়, যেখানে প্রতিটি উপাদানের টাইপ আলাদা হতে পারে। এটি অ্যারে থেকে বেশি ফ্লেক্সিবিলিটি প্রদান করে এবং টাইপ সেফটিও নিশ্চিত করে।
Content added By

TypeScript এ Enums (সংক্ষেপে Enumeration) একটি বিশেষ ডেটা টাইপ যা নির্দিষ্ট মানগুলোর একটি সেট ডিফাইন করতে ব্যবহার করা হয়। এটি বিভিন্ন ধরনের কনস্ট্যান্ট মানের সাথে কাজ করার জন্য অত্যন্ত কার্যকর, বিশেষ করে যখন আমাদের একটি ফিক্সড সেটের মধ্যে থেকে কোনো মান চয়ন করতে হয়। Enums কোডকে আরো পরিষ্কার, পাঠযোগ্য এবং পরিচালনাযোগ্য করে তোলে।

Enums মূলত দুটি ধরনের হয়ে থাকে:

  1. Numeric Enums
  2. String Enums

১. Numeric Enums

ডিফল্টভাবে, TypeScript এ Enums মান গুলি সংখ্যা (numeric) দিয়ে শুরু হয়। প্রথম মানের জন্য ০ নির্ধারণ করা হয়, এবং পরবর্তী মানগুলি একে একে ইনক্রিমেন্ট (বৃদ্ধি) করা হয়।

উদাহরণ:

enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right  // 3
}

let move: Direction = Direction.Up;
console.log(move); // 0

এখানে, Direction নামে একটি Enum ডিফাইন করা হয়েছে, যার মানগুলো Up, Down, Left, এবং Right। প্রথম মান Up ডিফল্টভাবে ০ হবে, পরবর্তী মানগুলি ১, ২, ৩... এর মতো ক্রমান্বয়ে বৃদ্ধি পাবে।

কাস্টম মান নির্ধারণ

আপনি যদি চান, Enum এর মানগুলি কাস্টম সংখ্যাও দিতে পারেন।

enum Direction {
  Up = 5,
  Down = 10,
  Left = 15,
  Right = 20
}

let move: Direction = Direction.Left;
console.log(move); // 15

এখানে, আমরা Direction Enum এর প্রতিটি মানের জন্য কাস্টম সংখ্যার মান নির্ধারণ করেছি।


২. String Enums

String Enums হল এমন Enums যেখানে প্রতিটি মান একটি স্ট্রিং হয়ে থাকে। এই ধরনের Enums অনেক সময় যখন আপনি স্পষ্ট স্ট্রিং মান রাখতে চান, তখন ব্যবহার করা হয়।

উদাহরণ:

enum Color {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}

let favoriteColor: Color = Color.Green;
console.log(favoriteColor); // "GREEN"

এখানে, Color Enum এর প্রতিটি মান একটি স্ট্রিং হিসাবে নির্ধারণ করা হয়েছে, যেমন "RED", "GREEN", এবং "BLUE"


৩. হেটেরোজেনিয়াস Enums

TypeScript এ একটি Enum এ বিভিন্ন ধরনের (সংখ্যা এবং স্ট্রিং) মানও থাকতে পারে, যা হেটেরোজেনিয়াস (heterogeneous) Enum হিসেবে পরিচিত। তবে এই ধরনের Enums সাধারণত কম ব্যবহৃত হয় এবং ব্যবহারে সতর্ক থাকা উচিত।

উদাহরণ:

enum Response {
  No = 0,
  Yes = "YES"
}

let response: Response = Response.Yes;
console.log(response); // "YES"

এখানে, Response Enum এর একটি মান 0 (নম্বর), এবং অন্যটি "YES" (স্ট্রিং)।


৪. Enum এর মেম্বারদের এক্সেস

Enum এর মধ্যে থাকা মেম্বারগুলোকে আপনি সরাসরি তার নাম বা মান দিয়ে এক্সেস করতে পারেন।

উদাহরণ:

enum Day {
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

let today: Day = Day.Monday;
console.log(today);  // 0 (প্রথম মান)
console.log(Day[0]); // "Monday" (ব্যাকওয়ার্ড এক্সেস)

এখানে, Day Enum এর মাধ্যমে আপনি নির্দিষ্ট দিনের মান বের করতে পারেন, যেমন Day.Monday। এছাড়াও আপনি মান দিয়ে নামও বের করতে পারেন, যেমন Day[0] এর মান হবে "Monday"


৫. Const Enum

TypeScript এ আপনি const Enum তৈরি করতে পারেন। এটি এমন একটি Enum যেটি কম্পাইলেশনের সময় সরাসরি তার মানগুলোর সাথে রূপান্তরিত হয় এবং runtime এ Enum কে প্রসেস করার প্রয়োজন হয় না, যা পারফরমেন্স বৃদ্ধি করে।

উদাহরণ:

const enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let move = Direction.Up;
console.log(move); // 1

এখানে, const enum ব্যবহার করার কারণে কোড কম্পাইল করার সময় Enum এর মান সরাসরি ইনলাইন হয়ে যাবে, ফলে কোডের আকার ছোট হবে এবং পারফরমেন্স ভালো হবে। তবে, আপনি const Enum এর মানগুলি শুধুমাত্র কম্পাইল টাইমে ব্যবহার করতে পারবেন এবং runtime এ এটি সাধারণ Enum এর মতো কাজ করবে না।


৬. Enum এর ব্যবহারিক উদাহরণ

Enums ব্যবহারের একটি জনপ্রিয় ক্ষেত্র হলো State management (অবস্থা ব্যবস্থাপনা), যেমন একজন ব্যবহারকারীর অবস্থা চেক করা:

উদাহরণ:

enum UserStatus {
  Active = "ACTIVE",
  Inactive = "INACTIVE",
  Suspended = "SUSPENDED"
}

function checkUserStatus(status: UserStatus): void {
  if (status === UserStatus.Active) {
    console.log("User is active.");
  } else if (status === UserStatus.Inactive) {
    console.log("User is inactive.");
  } else if (status === UserStatus.Suspended) {
    console.log("User is suspended.");
  }
}

checkUserStatus(UserStatus.Active); // "User is active."
checkUserStatus(UserStatus.Suspended); // "User is suspended."

এখানে, আমরা UserStatus Enum এর মাধ্যমে ব্যবহারকারীর অবস্থা চেক করছি, যা কোডের পাঠযোগ্যতা এবং পরিচালনা সহজ করে দেয়।


সারাংশ

TypeScript এর Enums শক্তিশালী একটি বৈশিষ্ট্য যা কোডকে আরো সংগঠিত এবং সহজে পরিচালনাযোগ্য করে তোলে। এটি বিভিন্ন ধরনের কনস্ট্যান্ট মানের জন্য একটি কেন্দ্রীয় মেকানিজম প্রদান করে, এবং কোডে দৃশ্যমানতা ও নির্ভুলতা আনতে সহায়ক হয়। আপনি Numeric Enums, String Enums, এবং Const Enums ব্যবহার করে বিভিন্ন পরিস্থিতিতে এটির সুবিধা গ্রহণ করতে পারেন।

Content added By

Enums (এনামস) TypeScript-এ একটি শক্তিশালী কনসেপ্ট যা আপনাকে নির্দিষ্ট মানগুলোর একটি সেট সংজ্ঞায়িত করতে সহায়তা করে। TypeScript এ স্ট্রিং Enums এবং নিউমেরিক Enums দুটি ধরণের Enums ব্যবহৃত হয়। এই দুটি ধরনের Enum-এর মধ্যে কিছু মূল পার্থক্য রয়েছে এবং প্রতিটি ধরন ব্যবহার করার ক্ষেত্রেও কিছু নির্দিষ্ট সুবিধা রয়েছে।


১. নিউমেরিক Enums

নিউমেরিক Enums হল TypeScript এর ডিফল্ট ধরনের Enums, যেখানে প্রতিটি মান একটি সংখ্যা দ্বারা প্রতিনিধিত্ব করা হয়। আপনি এই মানগুলোর জন্য কাস্টম সংখ্যা দিতে পারেন বা ডিফল্টভাবে সংখ্যা ইন্সক্রিমেন্ট (বৃদ্ধি) করে অ্যাসাইন করা হয়।

উদাহরণ:

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let move: Direction = Direction.Up;
console.log(move); // Output: 1

এখানে:

  • Up = 1 - প্রথম মানটি ১ দিয়ে শুরু করা হয়েছে।
  • Down, Left, এবং Right মানগুলি স্বয়ংক্রিয়ভাবে ২, ৩, ৪ মান পাবে, কারণ টাইপস্ক্রিপ্ট সেগুলোর মান ইনক্রিমেন্ট করে।

কাস্টম সংখ্যার মান নির্ধারণ:

enum Direction {
  Up = 10,
  Down = 20,
  Left = 30,
  Right = 40
}

let move: Direction = Direction.Left;
console.log(move); // Output: 30

এখানে, প্রতিটি মানের জন্য কাস্টম সংখ্যা প্রদান করা হয়েছে।

নিউমেরিক Enums এর সুবিধা:

  • স্পেসিফিক সংখ্যার মান দেওয়া সম্ভব হয়।
  • এনামটির মান পরবর্তী মেম্বার থেকে সংখ্যা বাড়ানোর জন্য ইনক্রিমেন্ট করা যায়, যা কোডকে আরো স্বচ্ছ এবং সহজবোধ্য করে।

২. স্ট্রিং Enums

স্ট্রিং Enums হল এমন Enums, যেখানে প্রতিটি মান একটি স্ট্রিং ডেটা টাইপের হয়। এটি যখন স্পষ্ট মানের প্রয়োজন হয়, যেমন কিছু স্থায়ী কনস্ট্যান্ট ভ্যালু যা স্ট্রিং হিসেবে চিহ্নিত করা যায়, তখন এটি ব্যবহৃত হয়।

উদাহরণ:

enum Color {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}

let favoriteColor: Color = Color.Green;
console.log(favoriteColor); // Output: "GREEN"

এখানে, Color একটি স্ট্রিং Enum যেটির প্রতিটি মান একটি স্ট্রিং "RED", "GREEN", এবং "BLUE" হিসেবে নির্ধারণ করা হয়েছে।

স্ট্রিং Enums এর সুবিধা:

  • কোডে স্পষ্ট এবং পাঠযোগ্য মান প্রদানের সুবিধা পাওয়া যায়।
  • স্ট্রিং ভ্যালু ব্যবহার করলে নাম এবং মানের মধ্যে আরো স্পষ্ট সম্পর্ক প্রতিষ্ঠিত হয়।

৩. স্ট্রিং এবং নিউমেরিক Enums এর মধ্যে পার্থক্য

বৈশিষ্ট্যনিউমেরিক Enumস্ট্রিং Enum
মানপ্রতিটি মান একটি সংখ্যার সাথে যুক্ত। (ডিফল্টভাবে ০ দিয়ে শুরু হয়)প্রতিটি মান একটি স্ট্রিং এর সাথে যুক্ত।
ডিফল্ট ইনক্রিমেন্টডিফল্টভাবে মানগুলো স্বয়ংক্রিয়ভাবে ইনক্রিমেন্ট হয়।কোনো ইনক্রিমেন্ট পদ্ধতি নেই, আপনাকে স্পষ্টভাবে মান প্রদান করতে হবে।
ব্যবহারসাধারণত যখন সংখ্যার সাথে কাজ করা প্রয়োজন (যেমন: অবস্থান, সূচক ইত্যাদি)।যখন স্পষ্ট, পাঠযোগ্য এবং নির্দিষ্ট মান ব্যবহার করা প্রয়োজন।
ফলাফলসংখ্যার মান প্রদান করে।স্ট্রিং মান প্রদান করে।

৪. ইউজার ফ্রেন্ডলি ম্যানিপুলেশন (Reverse Mapping)

নিউমেরিক Enum এর ক্ষেত্রে আপনি reverse mapping করতে পারেন, মান থেকে নাম বের করতে পারেন। কিন্তু স্ট্রিং Enum এর ক্ষেত্রে reverse mapping সম্ভব নয়, কারণ এখানে সংখ্যা ব্যবহৃত হয় না।

উদাহরণ (Reverse Mapping):

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

let directionName = Direction[2]; 
console.log(directionName); // Output: "Down"

এখানে, আমরা Direction[2] ব্যবহার করে মান থেকে নাম বের করেছি। তবে, স্ট্রিং Enum এর ক্ষেত্রে এটি কাজ করবে না, কারণ সেখানে reverse mapping সম্ভব নয়।


সারাংশ

  • নিউমেরিক Enum সাধারণত এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে একটি সিস্টেমে সংখ্যা দিয়ে মান নির্ধারণ করতে হয় এবং স্বয়ংক্রিয়ভাবে ইনক্রিমেন্ট করা সম্ভব।
  • স্ট্রিং Enum ব্যবহৃত হয় যখন প্রতিটি মানের জন্য একটি স্পষ্ট, পাঠযোগ্য স্ট্রিং নির্ধারণ করা প্রয়োজন। এটি বিশেষ করে কনস্ট্যান্ট মানগুলোকে আরও পরিষ্কারভাবে উপস্থাপন করে।

উপরে দেয়া উদাহরণ এবং পার্থক্যগুলোর মাধ্যমে আপনি TypeScript এর স্ট্রিং এবং নিউমেরিক Enums এর সুবিধা এবং কিভাবে এগুলি ব্যবহার করা হয়, তা আরও ভালোভাবে বুঝতে পারবেন।

Content added By

TypeScript এ Tuple হল একটি বিশেষ ধরনের ডেটা স্ট্রাকচার যা একটি নির্দিষ্ট সংখ্যক এবং ধরনের মান ধারণ করতে সক্ষম। এটি সাধারণত ব্যবহার হয় যখন আপনি একাধিক উপাদান ধারণ করতে চান যেগুলির প্রতিটির আলাদা টাইপ থাকতে পারে। Array এর মতো হলেও Tuple এ প্রতিটি উপাদানের টাইপ নির্দিষ্ট করা যায়।


Tuples কী?

Tuple হলো এক ধরনের Array যেখানে একাধিক ডেটা টাইপের মান একত্রিত করা যায়। যদিও অ্যারে সাধারণত একই ধরনের উপাদান ধারণ করে, Tuple বিভিন্ন টাইপের মান ধারণ করতে পারে। TypeScript এ আপনি Tuple-এর আকার এবং টাইপ স্পষ্টভাবে ডিফাইন করতে পারেন।

Tuple সাধারণত ব্যবহৃত হয় এমন পরিস্থিতিতে যেখানে আপনাকে একটি নির্দিষ্ট স্থানে নির্দিষ্ট টাইপের মান রাখা প্রয়োজন, যেমন একটি ২ উপাদানের তালিকা যেখানে প্রথমটি স্ট্রিং এবং দ্বিতীয়টি সংখ্যা হতে পারে।


Tuple এর সিনট্যাক্স

Tuple-এর উপাদানগুলো ডিফাইন করা হয় অ্যারে সাদৃশ ভাবে, তবে প্রতিটি উপাদানের টাইপ নির্দিষ্ট করা হয়। সাধারণত কমা (,) দিয়ে উপাদানগুলো পৃথক করা হয়।

উদাহরণ:

let person: [string, number] = ["John", 30];

এখানে, person একটি Tuple, যেখানে প্রথম উপাদানটি string এবং দ্বিতীয় উপাদানটি number


Tuple এর বৈশিষ্ট্য

  1. নির্দিষ্ট আকার: Tuple এর প্রতিটি উপাদান একটি নির্দিষ্ট টাইপ ধারণ করে এবং নির্দিষ্ট আকারে থাকে। যদি আপনি Tuple এর মধ্যে ভুল ধরনের ডেটা রাখেন, TypeScript ত্রুটি দেখাবে।
  2. মিশ্রিত টাইপ: Tuple বিভিন্ন টাইপের ডেটা ধারণ করতে সক্ষম। যেমন, একটি Tuple এর প্রথম উপাদানটি string এবং দ্বিতীয়টি number হতে পারে।
  3. অ্যারে ইন্ডেক্সিং: 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 এর একটি শক্তিশালী বৈশিষ্ট্য যা টাইপ সেফটি এবং কোডের ক্লিয়ারিটি বৃদ্ধি করে।

Content added By

Tuples TypeScript-এর একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা একাধিক মান ধারণ করতে সক্ষম। Tuple এর মাধ্যমে আপনি একাধিক বিভিন্ন টাইপের মান একটি একক ভেরিয়েবলের মধ্যে রাখতে পারেন। এটি একটি অ্যারে (array) ধরনের হলেও, এর মধ্যে বিভিন্ন ধরনের ডেটা থাকতে পারে এবং প্রতিটি মানের টাইপ নির্দিষ্ট করা হয়।

Tuples কী?

Tuples হলো একটি আর্কাইভ-লাইক ডেটা স্ট্রাকচার, যেখানে আপনি বিভিন্ন ধরনের মান রাখতে পারেন, এবং প্রতিটি মানের জন্য টাইপ নির্ধারণ করা যায়। একটি Tuple তৈরির জন্য, সাধারণত [] স্নিগ্ধভাবে ডিক্লেয়ার করা হয় এবং এর মধ্যে আলাদা আলাদা টাইপের ডেটা রাখা হয়।


১. Tuples এর সাথে ফাংশন ব্যবহার

আপনি Tuples এর মাধ্যমে ফাংশনে একাধিক ভ্যালু রিটার্ন করতে পারেন, যা বিশেষভাবে উপকারী যখন আপনি একাধিক মান একসাথে ফেরত দিতে চান। TypeScript-এ, আপনি ফাংশন ডিক্লেয়ার করার সময় Tuple রিটার্ন টাইপ নির্ধারণ করতে পারেন।

উদাহরণ:

function getPersonInfo(): [string, number] {
  return ["Alice", 25];  // একটি Tuple রিটার্ন হচ্ছে
}

const personInfo = getPersonInfo();
console.log(personInfo);  // Output: [ 'Alice', 25 ]

এখানে, getPersonInfo ফাংশনটি একটি Tuple রিটার্ন করছে, যেখানে প্রথম উপাদানটি একটি string এবং দ্বিতীয় উপাদানটি একটি number

এছাড়া, আপনি Tuple টাইপের উপাদানগুলোও নির্দিষ্টভাবে ডিক্লেয়ার করতে পারেন:

function getEmployeeDetails(): [string, number, string] {
  return ["Bob", 30, "Engineer"];
}

const employee = getEmployeeDetails();
const [name, age, profession] = employee; // Destructuring
console.log(name, age, profession);  // Output: Bob 30 Engineer

এখানে, getEmployeeDetails ফাংশনটি একটি ৩-ভ্যালু Tuple রিটার্ন করছে, যেখানে প্রথম উপাদান একটি string, দ্বিতীয় উপাদান একটি number এবং তৃতীয় উপাদান একটি string


২. Tuples এর সাথে ডেটা স্ট্রাকচার

Tuples শুধু মান রাখার জন্য নয়, এগুলো ডেটা স্ট্রাকচার হিসেবেও ব্যবহার করা যেতে পারে, যেমন বিভিন্ন টাইপের ভ্যালু গ্রুপিং করতে। এর মাধ্যমে, আপনি একাধিক তথ্য সংরক্ষণ করতে পারেন, যেখানে প্রতিটি উপাদান বিশেষ কিছু নির্দেশ করে।

উদাহরণ:

একটি Tuple যাতে দুটি মানের মধ্যে সম্পর্ক সৃষ্টির জন্য, যেমন দুটি ভিন্ন ডেটা টাইপের মান সংরক্ষণ করতে পারেন।

type Product = [string, number, boolean];

const product1: Product = ["Laptop", 1000, true];
const product2: Product = ["Phone", 500, false];

console.log(product1); // Output: [ 'Laptop', 1000, true ]
console.log(product2); // Output: [ 'Phone', 500, false ]

এখানে, Product নামের একটি Tuple টাইপ ডিক্লেয়ার করা হয়েছে, যেখানে:

  • প্রথম উপাদানটি একটি string (প্রোডাক্ট নাম)
  • দ্বিতীয় উপাদানটি একটি number (মূল্য)
  • তৃতীয় উপাদানটি একটি boolean (স্টক বা উপলভ্যতা)

৩. Tuple এর সাথে Destructuring

Tuple এর সাথে destructuring ব্যবহার করা খুবই সাধারণ এবং সহজ। এই প্রক্রিয়ার মাধ্যমে, আপনি Tuple-এর মানগুলো আলাদা আলাদা ভেরিয়েবলে একসাথে বের করে আনতে পারেন।

উদাহরণ:

const person: [string, number] = ["John", 28];

// Destructuring
let [name, age] = person;

console.log(name);  // Output: John
console.log(age);   // Output: 28

এখানে, person Tuple থেকে আমরা name এবং age ভেরিয়েবলে মানগুলো বের করে এনেছি।


৪. Tuples-এর সাথে Optional Elements

TypeScript-এ Tuple-এর মধ্যে কিছু optional উপাদান রাখা সম্ভব। এর জন্য আপনি টাইপের মধ্যে ? চিহ্ন ব্যবহার করতে পারেন।

উদাহরণ:

type ProductInfo = [string, number, string?];

const product1: ProductInfo = ["Laptop", 1200];
const product2: ProductInfo = ["Phone", 600, "Black"];

console.log(product1);  // Output: [ 'Laptop', 1200 ]
console.log(product2);  // Output: [ 'Phone', 600, 'Black' ]

এখানে, ProductInfo Tuple-এর তৃতীয় উপাদানটি optional, অর্থাৎ, এটি থাকতে পারে বা নাও থাকতে পারে।


৫. Tuples এর সাথে স্প্রেড অপারেটর

TypeScript-এ আপনি Tuple এর সাথে স্প্রেড অপারেটর ব্যবহার করে নতুন Tuple তৈরি করতে পারেন বা Tuple এর ভিতরের উপাদানগুলি আলাদা আলাদা ভেরিয়েবলে সেট করতে পারেন।

উদাহরণ:

const person: [string, number, string] = ["Alice", 30, "Engineer"];

// স্প্রেড অপারেটর দিয়ে নতুন Tuple তৈরি
const newPerson: [string, number, string, boolean] = [...person, true];

console.log(newPerson);  // Output: [ 'Alice', 30, 'Engineer', true ]

এখানে, আমরা person Tuple থেকে স্প্রেড অপারেটর দিয়ে নতুন একটি Tuple তৈরি করেছি এবং একটি নতুন উপাদান যোগ করেছি।


সারাংশ

Tuples TypeScript-এ বিভিন্ন ধরনের মান একটি একক ডেটা স্ট্রাকচারে ধারণ করার জন্য ব্যবহৃত হয়। এটি একাধিক টাইপের মান রাখার জন্য উপযোগী, এবং ফাংশন বা ডেটা স্ট্রাকচার তৈরি করার সময় খুবই কার্যকরী। ফাংশনে Tuple রিটার্ন, destructuring, optional elements, এবং স্প্রেড অপারেটর ব্যবহার করে এটি আরও শক্তিশালী হয়ে ওঠে। TypeScript-এ Tuple ব্যবহার করে আপনি কোডের স্ট্রাকচার উন্নত করতে পারেন এবং টাইপ সেফটি নিশ্চিত করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...