TypeScript এ ফাংশন টাইপস এবং সিগনেচার খুব গুরুত্বপূর্ণ, কারণ এটি কোডের স্পষ্টতা এবং টাইপ সেফটি নিশ্চিত করে। TypeScript এ ফাংশন ব্যবহারের সময় আপনি নির্দিষ্ট করতে পারেন ফাংশনের আর্গুমেন্টের টাইপ এবং রিটার্ন টাইপ। এটি কোডের ভুল কমাতে এবং উন্নত ডেভেলপমেন্ট অভিজ্ঞতা প্রদান করে।
১. ফাংশন সিগনেচার (Function Signature)
ফাংশন সিগনেচার হলো একটি ফাংশনের টাইপ নির্ধারণের উপায়। এটি ফাংশনের আর্গুমেন্টের টাইপ এবং রিটার্ন টাইপ সংজ্ঞায়িত করে, যাতে ফাংশন কল করার সময় সঠিক মান প্রদান করা হয়।
ফাংশন সিগনেচারের সাধারণ গঠন:
function functionName(param1: Type1, param2: Type2): ReturnType {
// function body
}
এখানে:
- param1, param2: ফাংশনের ইনপুট প্যারামিটার।
- Type1, Type2: প্যারামিটারগুলির টাইপ।
- ReturnType: ফাংশনের রিটার্ন টাইপ।
২. ফাংশন ডিক্লেয়ারেশন এবং টাইপিং
TypeScript এ আপনি ফাংশনের টাইপ নির্ধারণ করতে পারেন ফাংশন ডিক্লেয়ারেশনের মাধ্যমে। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো:
উদাহরণ ১: সিম্পল ফাংশন
function greet(name: string): string {
return `Hello, ${name}!`;
}
let message = greet("Alice");
console.log(message); // Output: Hello, Alice!
এখানে:
- ফাংশন
greetএকটিstringটাইপের প্যারামিটার নেয় (নাম) এবং একটিstringটাইপের মান রিটার্ন করে।
৩. ফাংশন টাইপ ডিক্লেয়ারেশন (Function Type Declaration)
TypeScript এ আপনি একটি ভ্যারিয়েবলের মাধ্যমে ফাংশনের টাইপও নির্ধারণ করতে পারেন। এটি ব্যবহার করা হয় যখন আপনি একটি ফাংশনকে ভ্যারিয়েবল হিসাবে সংরক্ষণ করেন এবং সেই ভ্যারিয়েবলের মাধ্যমে ফাংশনটি কল করতে চান।
উদাহরণ ২: ফাংশন টাইপ ডিক্লেয়ারেশন
let add: (a: number, b: number) => number = (x, y) => {
return x + y;
};
console.log(add(2, 3)); // Output: 5
এখানে:
addভ্যারিয়েবলের টাইপ সিগনেচার হলো(a: number, b: number) => numberযা নির্দেশ করেaddফাংশন দুটিnumberটাইপের প্যারামিটার গ্রহণ করবে এবং একটিnumberটাইপের মান রিটার্ন করবে।
৪. অপশনাল প্যারামিটার (Optional Parameters)
TypeScript এ একটি ফাংশনে অপশনাল প্যারামিটারও হতে পারে। এটি নির্ধারণ করতে আপনি প্যারামিটার নামের পরে ? চিহ্ন ব্যবহার করবেন। এটি নির্দেশ করে যে প্যারামিটারটি অবশ্যই প্রয়োজনীয় নয় এবং এটি অনুপস্থিতও থাকতে পারে।
উদাহরণ ৩: অপশনাল প্যারামিটার
function greet(name: string, age?: number): string {
if (age) {
return `Hello, ${name}! You are ${age} years old.`;
} else {
return `Hello, ${name}!`;
}
}
console.log(greet("Alice")); // Output: Hello, Alice!
console.log(greet("Bob", 25)); // Output: Hello, Bob! You are 25 years old.
এখানে:
ageপ্যারামিটারটি অপশনাল, অর্থাৎ আপনি এটি ছাড়াও ফাংশনটি কল করতে পারবেন।
৫. ডিফল্ট প্যারামিটার (Default Parameters)
TypeScript এ ফাংশনের প্যারামিটারগুলোর জন্য আপনি ডিফল্ট মান নির্ধারণ করতে পারেন। যদি কল করার সময় সেই প্যারামিটারটি দেওয়া না হয়, তবে ডিফল্ট মান ব্যবহার করা হবে।
উদাহরণ ৪: ডিফল্ট প্যারামিটার
function greet(name: string, age: number = 30): string {
return `Hello, ${name}! You are ${age} years old.`;
}
console.log(greet("Alice")); // Output: Hello, Alice! You are 30 years old.
console.log(greet("Bob", 25)); // Output: Hello, Bob! You are 25 years old.
এখানে:
ageপ্যারামিটারটির জন্য ডিফল্ট মান30নির্ধারণ করা হয়েছে। যদি এটি দেওয়া না হয়, তাহলে30ব্যবহৃত হবে।
৬. ফাংশন রিটার্ন টাইপ
TypeScript এ ফাংশনের রিটার্ন টাইপও নির্ধারণ করা যায়। ফাংশনের শেষে রিটার্ন টাইপ দেওয়া হয়, যাতে নির্দিষ্ট করা যায় যে ফাংশনটি কোন ধরনের ডেটা রিটার্ন করবে।
উদাহরণ ৫: রিটার্ন টাইপ
function square(num: number): number {
return num * num;
}
console.log(square(5)); // Output: 25
এখানে:
squareফাংশনটি একটিnumberটাইপের ইনপুট নেয় এবং একটিnumberটাইপের আউটপুট প্রদান করে।
৭. ফাংশন টাইপের উন্নত উদাহরণ
TypeScript এ আপনি আরও জটিল টাইপগুলির সাথে ফাংশন ব্যবহার করতে পারেন। যেমন, একটি ফাংশন যেটি কলব্যাক ফাংশন গ্রহণ করে বা একটি ফাংশন যা একাধিক ভিন্ন টাইপের আর্গুমেন্ট গ্রহণ করে।
উদাহরণ ৬: কলব্যাক ফাংশন
function processUserInput(callback: (input: string) => void) {
let userInput = "Hello, World!";
callback(userInput);
}
processUserInput((input) => {
console.log(input); // Output: Hello, World!
});
এখানে:
processUserInputফাংশনটি একটি কলব্যাক ফাংশন গ্রহণ করে যাstringইনপুট নেয় এবং কিছু কাজ সম্পন্ন করে।
সারাংশ
TypeScript এ ফাংশন টাইপস এবং সিগনেচার ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ কারণ এটি আপনার কোডের টাইপ সেফটি নিশ্চিত করে। TypeScript এর মাধ্যমে আপনি:
- ফাংশনের প্যারামিটার এবং রিটার্ন টাইপ নির্দিষ্ট করতে পারেন,
- অপশনাল এবং ডিফল্ট প্যারামিটার ব্যবহার করতে পারেন,
- কলব্যাক ফাংশন এবং জটিল টাইপস সহ ফাংশন তৈরি করতে পারেন।
ফাংশন সিগনেচারের মাধ্যমে কোড আরো স্পষ্ট এবং বাগ মুক্ত হয়, যা ডেভেলপারদের জন্য সহায়ক।
Read more