TypeScript একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যা ক্লাস এবং অবজেক্ট ব্যবহার করে কোড সংগঠিত করার সুবিধা দেয়। TypeScript এর ক্লাস গুলি JavaScript এর ক্লাসের মতই কাজ করে, তবে এতে স্ট্রিক্ট টাইপিং এবং আরও কিছু অতিরিক্ত সুবিধা পাওয়া যায়।
এই গাইডে TypeScript ক্লাস এবং অবজেক্টের ধারণা, কীভাবে ক্লাস তৈরি করতে হয়, এবং ক্লাসের মধ্যকার বিভিন্ন কনসেপ্ট যেমন ইনহেরিটেন্স, মেথড, প্রপার্টি ইত্যাদি কভার করা হবে।
১. ক্লাস তৈরি করা
TypeScript এ ক্লাস তৈরি করা JavaScript এর মতোই, তবে TypeScript আপনাকে টাইপ ডেফিনিশন এবং আরও কিছু উন্নত ফিচার সরবরাহ করে। একটি সাধারণ ক্লাসের উদাহরণ নিচে দেওয়া হলো:
class Person {
// প্রপার্টি ডিফাইনেশন
name: string;
age: number;
// কনস্ট্রাক্টর
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
// মেথড
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
এখানে:
nameএবংageহলো ক্লাসের প্রপার্টি।constructor()হলো একটি বিশেষ মেথড যা ক্লাসের অবজেক্ট তৈরি করার সময় ডাকা হয়।greet()হলো একটি সাধারণ মেথড যা ক্লাসের অবজেক্টের মাধ্যমে কল করা যায়।
২. ক্লাসের অবজেক্ট তৈরি করা
একবার ক্লাস তৈরি হয়ে গেলে, আপনি তার একটি অবজেক্ট তৈরি করতে পারবেন। নিচে একটি উদাহরণ দেওয়া হলো:
// Person ক্লাসের অবজেক্ট তৈরি করা
let person1 = new Person("John", 25);
// মেথড কল করা
person1.greet(); // Output: Hello, my name is John and I am 25 years old.
এখানে, person1 হলো Person ক্লাসের একটি অবজেক্ট, যা কনস্ট্রাক্টরের মাধ্যমে name এবং age প্রপার্টি ইনিশিয়ালাইজ করেছে।
৩. ইনহেরিটেন্স (Inheritance)
TypeScript ক্লাস ইনহেরিটেন্সও সাপোর্ট করে, অর্থাৎ আপনি একটি ক্লাসকে অন্য একটি ক্লাস থেকে উত্তরাধিকার (inherit) করতে পারেন। এর মাধ্যমে আপনি কোডের পুনরাবৃত্তি এড়াতে পারেন এবং নতুন ক্লাসে পুরোনো ক্লাসের বৈশিষ্ট্যগুলো ব্যবহার করতে পারেন।
class Employee extends Person {
jobTitle: string;
constructor(name: string, age: number, jobTitle: string) {
super(name, age); // Parent class (Person) constructor কল
this.jobTitle = jobTitle;
}
// নতুন মেথড
showJobTitle() {
console.log(`I am a ${this.jobTitle}.`);
}
}
// Employee ক্লাসের অবজেক্ট তৈরি
let employee1 = new Employee("Jane", 30, "Software Developer");
employee1.greet(); // Output: Hello, my name is Jane and I am 30 years old.
employee1.showJobTitle(); // Output: I am a Software Developer.
এখানে:
Employeeক্লাসPersonক্লাস থেকে ইনহেরিট করেছে।super()মেথড ব্যবহার করে প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল করা হয়েছে।
৪. অবজেক্ট টাইপ
TypeScript এ ক্লাসের অবজেক্টের টাইপ ডিফাইন করা যায়। এটি কোডের টাইপ সেফটি নিশ্চিত করে এবং অবজেক্টের প্রপার্টি সম্পর্কে টাইপ সম্পর্কিত ত্রুটি চেক করতে সাহায্য করে।
let person2: Person = new Person("Alice", 28);
person2.greet();
এখানে person2 টাইপ Person হিসেবে ডিফাইন করা হয়েছে, অর্থাৎ এটি Person ক্লাসের একটি অবজেক্ট হতে হবে।
৫. অ্যাবস্ট্রাক্ট ক্লাস (Abstract Classes)
TypeScript এ অ্যাবস্ট্রাক্ট ক্লাস ব্যবহার করা হয় যখন আপনি একটি বেস ক্লাস তৈরি করতে চান যা সরাসরি ইনস্ট্যানশিয়েট (instantiate) করা যাবে না, কিন্তু তার সাবক্লাসগুলিতে বাস্তবায়ন (implementation) থাকবে।
abstract class Animal {
abstract makeSound(): void; // অ্যাবস্ট্রাক্ট মেথড
move() {
console.log("This animal moves");
}
}
class Dog extends Animal {
makeSound() {
console.log("Woof");
}
}
let dog = new Dog();
dog.makeSound(); // Output: Woof
dog.move(); // Output: This animal moves
এখানে:
Animalক্লাস একটি অ্যাবস্ট্রাক্ট ক্লাস, এবংmakeSound()মেথডটিকে অ্যাবস্ট্রাক্ট হিসেবে ডিফাইন করা হয়েছে, যার অর্থDogক্লাসে এটিকে বাস্তবায়ন (implement) করতে হবে।
৬. সারাংশ
TypeScript ক্লাস এবং অবজেক্ট ব্যবহারের মাধ্যমে আপনি অ্যাবস্ট্রাকশন, ইনহেরিটেন্স, এবং অন্যান্য OOP কনসেপ্টগুলো কাজে লাগিয়ে আরও সংগঠিত এবং রিডেবল কোড লিখতে পারেন। TypeScript এর স্ট্রিক্ট টাইপ সিস্টেম এই কাজটিকে আরও সহজ এবং নিরাপদ করে তোলে।
- ক্লাসের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায়।
- ইনহেরিটেন্সের মাধ্যমে একাধিক ক্লাসের মধ্যে বৈশিষ্ট্য শেয়ার করা যায়।
- অ্যাবস্ট্রাক্ট ক্লাসের মাধ্যমে নির্দিষ্ট ধরনের কনট্রোল এবং ডেভেলপারদের জন্য নির্দেশনা প্রদান করা হয়।
TypeScript ক্লাস এবং অবজেক্টের সাহায্যে আপনি জাভাস্ক্রিপ্ট কোডের বেশি গঠনমূলক এবং দক্ষ প্রকল্প তৈরি করতে পারবেন।
Read more