ES6 মডিউলস এবং TypeScript মডিউলস

TypeScript মডিউল এবং নামস্পেস - টাইপস্ক্রিপ্ট (Typescript) - Web Development

255

TypeScript একটি শক্তিশালী মডিউল সিস্টেম প্রদান করে যা কোডকে ছোট এবং সংগঠিত অংশে বিভক্ত করতে সহায়তা করে। TypeScript মডিউল সিস্টেম JavaScript এর মডিউল সিস্টেমের উপর ভিত্তি করে কাজ করে, যা ES6 মডিউল সিস্টেমকেও সমর্থন করে। TypeScript এর মডিউল সিস্টেমের মাধ্যমে আপনি কোডকে আলাদা আলাদা ফাইল বা মডিউলে ভাগ করতে পারেন, এবং প্রতিটি মডিউল অন্য মডিউল থেকে নির্দিষ্ট অংশগুলি ইম্পোর্ট এবং এক্সপোর্ট করতে পারে।


১. মডিউল কী?

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

২. TypeScript মডিউল সিস্টেম

TypeScript এ, মডিউল ব্যবহৃত হয় ফাংশন, ভেরিয়েবল, ক্লাস, ইন্টারফেস, টাইপ ইত্যাদিকে একত্রিত করতে এবং তাদের পুনরায় ব্যবহারযোগ্য করে তুলতে। আপনি TypeScript মডিউল সিস্টেমে export এবং import কিওয়ার্ড ব্যবহার করে এই কাজগুলো করতে পারেন।


৩. export কিওয়ার্ড

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

উদাহরণ:

// math.ts (মডিউল ১)
export function add(a: number, b: number): number {
  return a + b;
}

export function multiply(a: number, b: number): number {
  return a * b;
}

এখানে math.ts ফাইল দুটি ফাংশন add এবং multiply এক্সপোর্ট করছে।


৪. import কিওয়ার্ড

import কিওয়ার্ড ব্যবহার করে আপনি অন্য মডিউল থেকে এক্সপোর্ট করা ফাংশন, ক্লাস, বা ভেরিয়েবল ইম্পোর্ট করতে পারেন।

উদাহরণ:

// app.ts (মডিউল ২)
import { add, multiply } from './math';

console.log(add(5, 10));       // Output: 15
console.log(multiply(5, 10));  // Output: 50

এখানে app.ts ফাইলটি math.ts থেকে add এবং multiply ফাংশন দুটি ইম্পোর্ট করছে এবং তাদের ব্যবহার করছে।


৫. ডিফল্ট এক্সপোর্ট (Default Export)

TypeScript মডিউল সিস্টেমে আপনি একটি মডিউল থেকে শুধুমাত্র একটিই ডিফল্ট এক্সপোর্ট করতে পারেন। ডিফল্ট এক্সপোর্ট ব্যবহারের মাধ্যমে আপনি কোন একটি ফাংশন বা ক্লাসকে ডিফল্ট হিসেবে এক্সপোর্ট করতে পারেন এবং ইম্পোর্ট করার সময় নাম উল্লেখ করতে হবে না।

উদাহরণ:

// math.ts (মডিউল ১)
export default function add(a: number, b: number): number {
  return a + b;
}

এখানে add ফাংশনটি ডিফল্ট এক্সপোর্ট করা হয়েছে। এখন আপনি এটি অন্য মডিউল থেকে ইম্পোর্ট করতে পারবেন।

// app.ts (মডিউল ২)
import add from './math';

console.log(add(5, 10));  // Output: 15

এখানে add ফাংশনটি ডিফল্ট হিসেবে ইম্পোর্ট করা হয়েছে, তাই add নামটি ব্যবহার করতে হয়েছে, এবং এটি অতিরিক্ত {} ছাড়া সরাসরি ব্যবহার করা হয়েছে।


৬. মডিউল রেজোলিউশন

TypeScript মডিউল সিস্টেমে মডিউল রেজোলিউশন হল সেই প্রক্রিয়া যার মাধ্যমে TypeScript ডিটারমাইন করে কোন মডিউলটি ইম্পোর্ট করতে হবে। TypeScript দুটি ধরনের মডিউল রেজোলিউশন পদ্ধতি সমর্থন করে:

  • Node: যেখানে node_modules ফোল্ডারে মডিউল খোঁজা হয়।
  • Classic: যেখানে ঐতিহ্যবাহী পদ্ধতিতে মডিউল খোঁজা হয় (অতএব, এটি ES6 মডিউল সিস্টেমের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ নয়)।

নির্দিষ্ট মডিউল রেজোলিউশন পদ্ধতি নির্ধারণ করতে আপনি tsconfig.jsonmoduleResolution অপশন ব্যবহার করতে পারেন।

উদাহরণ:

{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}

এখানে moduleResolution প্যারামিটারটি "node" সেট করা হয়েছে, যার মাধ্যমে TypeScript node_modules ফোল্ডারে মডিউল খুঁজবে।


৭. মডিউল ডিরেক্টরি স্ট্রাকচার

TypeScript প্রজেক্টে মডিউল ব্যবস্থাপনার জন্য সাধারণত একটি নির্দিষ্ট ডিরেক্টরি স্ট্রাকচার ব্যবহার করা হয়। নিচে একটি সাধারণ স্ট্রাকচার দেওয়া হলো:

/project-root
  /src
    /models
      user.ts
    /controllers
      userController.ts
    app.ts
  tsconfig.json
  package.json

এখানে, src ফোল্ডারের ভিতরে models এবং controllers নামে দুটি সাবফোল্ডার রয়েছে, যেখানে আপনার বিভিন্ন মডিউলগুলোর কোড থাকবে। এই কোডগুলি পরস্পরের সাথে import এবং export করে কাজ করবে।


৮. সংক্ষেপে

TypeScript মডিউল সিস্টেম আপনাকে কোডকে আরও সংগঠিত এবং পুনঃব্যবহারযোগ্য করতে সাহায্য করে। আপনি export এবং import কিওয়ার্ড ব্যবহার করে কোডের বিভিন্ন অংশ আলাদা করে লিখতে পারেন এবং একে অপর থেকে ব্যবহার করতে পারেন। TypeScript ES6 মডিউল সিস্টেমকে পুরোপুরি সমর্থন করে এবং কোডের মান ও maintainability বৃদ্ধি করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...