টাইপস্ক্রিপ্টে ফাংশন

টাইপস্ক্রিপ্টে ফাংশন

এই প্রবন্ধে টাইপস্ক্রিপ্টে ফাংশনের ব্যাখ্যা দেওয়া হয়েছে।

YouTube Video

টাইপস্ক্রিপ্টে ফাংশন

টাইপস্ক্রিপ্টে ফাংশন হল জাভাস্ক্রিপ্ট ফাংশন যা টাইপ অ্যানোটেশন সহ যুক্ত। টাইপস্ক্রিপ্ট ব্যবহার করে আপনি ফাংশনের ইনপুট (প্যারামিটার) এবং আউটপুট (রিটার্ন ভ্যালু) এর টাইপ সুনির্দিষ্ট করে আরো দৃঢ় কোড লিখতে পারেন। নিচে, আমরা টাইপস্ক্রিপ্টে ফাংশন সংজ্ঞায়িত করার মৌলিক পদ্ধতি এবং ফাংশনের কিছু বৈশিষ্ট্য উপস্থাপন করছি।

মৌলিক ফাংশনের সংজ্ঞা

1function add(x: number, y: number): number {
2    return x + y;
3}
4
5console.log(add(5, 10));  // 15
  • add ফাংশনটি দুটি number ধরনের আর্গুমেন্ট নেয় এবং একটি number ধরনের মান রিটার্ন করে।
  • এটি দুটি আর্গুমেন্ট নেয়, x এবং y, দুটোই number টাইপের এবং তাদের টাইপ স্পষ্টভাবে নির্দিষ্ট করা হয়েছে।
  • রিটার্ন টাইপও : number হিসাবে নির্দিষ্ট করা হয়েছে।

অজানা ফাংশন (ফাংশন এক্সপ্রেশন)

টাইপস্ক্রিপ্টেও অজানা ফাংশন এবং ফাংশন এক্সপ্রেশন ব্যবহার করা যেতে পারে। টাইপ একই পদ্ধতিতে অ্যানোটেট করা যেতে পারে।

1const multiply = function (x: number, y: number): number {
2    return x * y;
3};
4
5console.log(multiply(3, 4));  // 12
  • আপনি একটি নামহীন ফাংশন কোনো ভেরিয়েবল-এ নিযুক্ত করতে পারেন এবং পরে তা কল করতে পারেন।
1const factorial = function fact(n: number): number {
2  if (n <= 1) return 1;
3  return n * fact(n - 1); // Can call itself recursively
4};
5
6console.log(factorial(5)); // 120
  • পুনরাবৃত্ত কল সক্রিয় করতে আপনি একটি নামযুক্ত ফাংশন এক্সপ্রেশন ব্যবহার করতে পারেন।

অ্যারো ফাংশন

টাইপ অ্যানোটেশন অ্যারো ফাংশনের সাথেও ব্যবহার করা যায়।

1const subtract = (x: number, y: number): number => {
2    return x - y;
3};
4
5console.log(subtract(10, 4));  // 6

এই কোডটি টাইপ অ্যানোটেশন সহ একটি অ্যারো ফাংশন subtract সংজ্ঞায়িত করে, যা দুটি সংখ্যা আর্গুমেন্ট হিসেবে নেয় এবং তাদের পার্থক্য রিটার্ন করে।

ঐচ্ছিক এবং ডিফল্ট প্যারামিটার

প্যারামিটারগুলিকে ঐচ্ছিক করা বা ডিফল্ট মান দেওয়া যেতে পারে।

ঐচ্ছিক প্যারামিটার

প্যারামিটার নামের পরে ? যোগ করা হলে এটি ঐচ্ছিক হয়ে যায়।

1function greet(name?: string): string {
2    return name ? `Hello, ${name}` : "Hello!";
3}
4
5console.log(greet());        // Hello!
6console.log(greet("Alice"));  // Hello, Alice

এই কোডটি একটি ঐচ্ছিক আর্গুমেন্ট গ্রহণ করে; যদি আর্গুমেন্ট দেওয়া হয়, এটি নাম ব্যবহার করে অভিবাদন জানায়, অন্যথায় এটি একটি সাধারণ অভিবাদন প্রদান করে।

ডিফল্ট প্যারামিটার

আপনি প্যারামিটারের জন্য ডিফল্ট মান সেট করতে পারেন।

1function greetWithDefault(name: string = "Guest"): string {
2    return `Hello, ${name}`;
3}
4
5console.log(greetWithDefault());         // Hello, Guest
6console.log(greetWithDefault("Bob"));    // Hello, Bob

এই ফাংশনটিতে কোনো আর্গুমেন্ট না দিলে "Guest" ডিফল্ট মান হিসাবে ব্যবহার করা হয় এবং নির্দিষ্ট বা ডিফল্ট নামে অভিবাদন জানানো হয়।

ফাংশনের টাইপ সংজ্ঞা

ফাংশনের নিজস্ব টাইপ সংজ্ঞায়িত করাও সম্ভব। উদাহরণস্বরূপ, এটি একটি আর্গুমেন্ট হিসেবে ফাংশন পাস করার ক্ষেত্রে ব্যবহৃত হয়।

1type Operation = (x: number, y: number) => number;
2
3const addOperation: Operation = (x, y) => x + y;
4const multiplyOperation: Operation = (x, y) => x * y;
5
6console.log(addOperation(2, 3));      // 5
7console.log(multiplyOperation(2, 3)); // 6

এই কোডটি Operation নামের একটি ফাংশন টাইপ সংজ্ঞায়িত করে যা দুটি সংখ্যা গ্রহণ করে এবং একটি সংখ্যা রিটার্ন করে; তারপর এটি ব্যবহার করে যোগ এবং গুণনের ফাংশন তৈরি ও চালানো হয়।

যখন কোনও রিটার্ন মান থাকে না (void টাইপ)

যেসব ফাংশনে কোনো রিটার্ন ভ্যালু নেই, তাদের জন্য void টাইপ নির্ধারণ করুন।

1function logMessage(message: string): void {
2    console.log(message);
3}
4
5logMessage("This is a message.");  // This is a message.

এই কোডটি একটি void ফাংশন logMessage সংজ্ঞায়িত করে, যা একটি স্ট্রিং মেসেজ নেয় এবং কনসোলে ছাপায়, কোনো মান রিটার্ন না করে।

কলব্যাক ফাংশন

একটি ফাংশনকে অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাস করা এবং সেটিকে পরে এক্সিকিউট করাকে কলব্যাক ফাংশন বলা হয়। এটি প্রায়ই অ্যাসিঙ্ক্রোনাস প্রসেসিং এবং ইভেন্ট হ্যান্ডলিংয়ে ব্যবহৃত হয়।

1function processData(callback: (data: string) => void): void {
2    const data: string = "Processed Data";
3    callback(data);
4}
5
6processData((result: string): void => {
7    console.log(result);
8});

এই উদাহরণে, কনসোলে একটি মান আউটপুট করার একটি ফাংশনকে কলব্যাক ফাংশন হিসেবে পাস করা হয়েছে।

বিকল্পভাবে, আপনি type অথবা interface ব্যবহার করে একটি কলব্যাক টাইপ সংজ্ঞায়িত করতে পারেন।

 1type Callback = (data: string) => void;
 2
 3function processData(callback: Callback): void {
 4    const data: string = "Processed Data";
 5    callback(data);
 6}
 7
 8processData((result: string): void => {
 9    console.log(result);
10});

type অথবা interface ব্যবহার করে কলব্যাক টাইপ সংজ্ঞায়িত করলে পুনর্ব্যবহারযোগ্যতা বৃদ্ধি পায়।

ফাংশন ওভারলোডিং

ফাংশন ওভারলোডিং আপনাকে একই নামের কিন্তু ভিন্ন প্যারামিটার তালিকার ফাংশন সংজ্ঞায়িত করতে দেয়। টাইপস্ক্রিপ্টে, একই নাম দিয়ে একাধিক ফাংশন সংজ্ঞায়িত করা যায় এবং প্যারামিটারের টাইপ এবং সংখ্যার উপর ভিত্তি করে বিভিন্ন কাজ সম্পাদন করা যায়।

 1// Overload Signature
 2function double(value: number): number;
 3function double(value: string): string;
 4
 5// Implementation Signature
 6function double(value: number | string): number | string {
 7    if (typeof value === "number") {
 8        return value * 2;
 9    } else if (typeof value === "string") {
10        return value + value;
11    }
12}
13
14console.log(double(10));      // 20
15console.log(double("Hello")); // HelloHello

টাইপস্ক্রিপ্টে, ওভারলোডিং নিম্নলিখিতভাবে সম্পন্ন করা হয়:।

  • ওভারলোড স্বাক্ষর

    • ফাংশন কিভাবে ব্যবহার করা যাবে তা সংজ্ঞায়িত করে (তার স্বাক্ষর)। এটি বারবার লিখে, ওভারলোডিং সম্ভব হয়ে ওঠে।
  • বাস্তবায়ন স্বাক্ষর

    • আসল ফাংশন বডি বাস্তবায়ন করে। এ অংশটি মাত্র একবার সংজ্ঞায়িত করা হয় এবং ওভারলোড স্বাক্ষরে ঘোষিত সমস্ত ক্ষেত্রে পরিচালনা করে।

ওভারলোডিংয়ের নিয়মাবলী

ফাংশন ওভারলোডিংয়ের ক্ষেত্রে নিম্নলিখিত নিয়ম প্রযোজ্য:।

  • ওভারলোড স্বাক্ষরের সংজ্ঞার ক্রম

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

    • বাস্তবায়ন স্বাক্ষরটি সমস্ত ওভারলোড স্বাক্ষরের আর্গুমেন্ট এবং রিটার্ন মানের সাথে সামঞ্জস্যপূর্ণ হতে হবে।
  • ওভারলোড স্বাক্ষরগুলিতে বিশদ বিবরণ নির্দিষ্ট করুন

    • বাস্তবায়ন স্বাক্ষরটি অস্পষ্ট হতে পারে, তাই ওভারলোড স্বাক্ষরগুলিতে বিশদ নির্দিষ্ট করা উচিত।
    • যদি কেবলমাত্র বাস্তবায়ন স্বাক্ষর সংজ্ঞায়িত করা হয়, তবে ফাংশনের জন্য টাইপ ইনফারেন্স অপর্যাপ্ত হবে।

সারসংক্ষেপ

টাইপস্ক্রিপ্টে ফাংশনগুলির নিম্নলিখিত বৈশিষ্ট্য রয়েছে।

  • টাইপ অ্যানোটেশন
    • আর্গুমেন্ট এবং রিটার্ন ভ্যালুর জন্য টাইপ নির্দিষ্ট করে, আপনি আরও নিরাপদ কোড লিখতে পারেন।
  • নামবিহীন ফাংশন এবং অ্যারো ফাংশন
    • এই ফাংশনগুলো জাভাস্ক্রিপ্টের মতোই ব্যবহার করা যায়, এবং টাইপ অ্যানোটেশন যোগ করলে টাইপ নিরাপত্তা বৃদ্ধি পায়।
  • ঐচ্ছিক এবং ডিফল্ট প্যারামিটার
    • প্রয়োজন অনুযায়ী আর্গুমেন্ট নির্ধারণ আরও নমনীয় করা যায়।
  • ফাংশন টাইপ সংজ্ঞা
    • টাইপ চেকিং করার জন্য ফাংশনের টাইপ নির্ধারণ করুন।
  • ফাংশন ওভারলোডিং
    • একই ফাংশন নামের সঙ্গে বিভিন্ন আর্গুমেন্ট সমর্থন করা যায়।

এগুলি ব্যবহার করে, আপনি টাইপস্ক্রিপ্টে আরও পরিষ্কার এবং শক্তিশালী কোড লিখতে পারেন।

আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।

YouTube Video