মডিউল এক্সপোর্ট এবং ইম্পোর্ট করা

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

278

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


১. মডিউল এক্সপোর্ট (Export)

TypeScript এ মডিউল এক্সপোর্ট করার জন্য export কীওয়ার্ড ব্যবহার করা হয়। এর মাধ্যমে আপনি একটি ফাংশন, ক্লাস, কনস্ট্যান্ট বা ভেরিয়েবলকে অন্য ফাইলের জন্য দৃশ্যমান (accessible) করে দেন।

১.১. Named Export

Named Export এর মাধ্যমে আপনি একাধিক ভেরিয়েবল, ফাংশন বা ক্লাস এক্সপোর্ট করতে পারেন। প্রতিটি এক্সপোর্টের জন্য আলাদা export কীওয়ার্ড ব্যবহার করতে হয়।

উদাহরণ:
// mathFunctions.ts

export const pi: number = 3.14;

export function add(x: number, y: number): number {
  return x + y;
}

export class Calculator {
  static multiply(x: number, y: number): number {
    return x * y;
  }
}

এখানে, আমরা তিনটি আলাদা উপাদান—pi কনস্ট্যান্ট, add() ফাংশন, এবং Calculator ক্লাস—এক্সপোর্ট করেছি।

১.২. Default Export

Default Export এর মাধ্যমে আপনি একমাত্র একটি উপাদান (ফাংশন, ক্লাস, বা অবজেক্ট) এক্সপোর্ট করতে পারেন। এটি কম্পাইলারকে নির্দেশ দেয় যে এই ফাইলটির প্রধান এক্সপোর্টটি কী।

উদাহরণ:
// greet.ts

export default function greet(name: string): string {
  return `Hello, ${name}!`;
}

এখানে greet() ফাংশনকে default export করা হয়েছে, অর্থাৎ এটি ওই ফাইলের প্রধান এক্সপোর্ট।


২. মডিউল ইম্পোর্ট (Import)

import কীওয়ার্ড ব্যবহার করে আপনি এক্সপোর্ট করা উপাদানগুলো অন্য ফাইল থেকে ইম্পোর্ট করতে পারেন।

২.১. Named Import

Named Import এর মাধ্যমে আপনি এক্সপোর্ট করা নির্দিষ্ট উপাদান (ফাংশন, ভেরিয়েবল, ক্লাস) ব্যবহার করতে পারেন।

উদাহরণ:
// app.ts

import { pi, add, Calculator } from './mathFunctions';

console.log(pi); // 3.14
console.log(add(5, 7)); // 12
console.log(Calculator.multiply(5, 3)); // 15

এখানে pi, add(), এবং Calculator ক্লাসকে mathFunctions.ts থেকে ইম্পোর্ট করা হয়েছে।

২.২. Default Import

Default Export করা উপাদান ইম্পোর্ট করার জন্য import স্টেটমেন্টে নাম উল্লেখ না করেও সরাসরি উপাদানটি ইম্পোর্ট করা যায়।

উদাহরণ:
// app.ts

import greet from './greet';

console.log(greet("Alice")); // Hello, Alice!

এখানে greet() ফাংশনটি greet.ts থেকে default export করা হয়েছে এবং সরাসরি greet নাম দিয়ে ইম্পোর্ট করা হয়েছে।

২.৩. সবকিছু ইম্পোর্ট করা

যদি আপনি একটি মডিউলের সবকিছু একবারে ইম্পোর্ট করতে চান, তাহলে আপনি * as সিনট্যাক্স ব্যবহার করতে পারেন। এতে পুরো মডিউল একটি অবজেক্ট হিসেবে ইম্পোর্ট হবে।

উদাহরণ:
// app.ts

import * as math from './mathFunctions';

console.log(math.pi); // 3.14
console.log(math.add(5, 10)); // 15
console.log(math.Calculator.multiply(5, 2)); // 10

এখানে mathFunctions.ts থেকে সমস্ত এক্সপোর্টকৃত উপাদান math নামে একটি অবজেক্ট হিসেবে ইম্পোর্ট করা হয়েছে এবং ব্যবহার করা হয়েছে।


৩. মডিউল এক্সপোর্ট এবং ইম্পোর্টের ফিচার

  • Named Exports: একাধিক উপাদান এক্সপোর্ট করতে পারেন। ইম্পোর্ট করার সময় নির্দিষ্ট উপাদানগুলিকে নির্বাচিত করা হয়।
  • Default Export: একমাত্র একটি উপাদান এক্সপোর্ট করা হয়, যা সরাসরি ইম্পোর্ট করা যায়।
  • Partial Imports: আপনি শুধুমাত্র প্রয়োজনীয় অংশগুলোই ইম্পোর্ট করতে পারেন।
  • Wildcard Import: * as সিনট্যাক্স ব্যবহার করে পুরো মডিউলটি একটি অবজেক্ট হিসেবে ইম্পোর্ট করতে পারেন।

৪. মডিউল রেজল্যুশন

TypeScript মডিউল রেজল্যুশন (Module Resolution) অর্থাৎ ফাইল কোথায় খুঁজে পাওয়া যাবে, তা নির্ধারণ করে। TypeScript সাধারণত node_modules বা আপনি যে পথ নির্দিষ্ট করেছেন, সেখান থেকে মডিউল খুঁজে বের করে।

আপনি যদি কোন মডিউল ইম্পোর্ট করতে চান, তবে তার জন্য পথ উল্লেখ করতে হবে (যেমন ./ বা ../ বা নির্দিষ্ট প্যাকেজ নাম)।


সারাংশ

TypeScript এ মডিউল ব্যবহারের মাধ্যমে কোডের সংগঠন এবং পুনঃব্যবহারযোগ্যতা সহজ করা যায়। export এবং import কীওয়ার্ড ব্যবহার করে আপনি কোডের বিভিন্ন অংশ আলাদা ফাইলে ভাগ করে রাখতে পারেন এবং প্রয়োজনে এক ফাইল থেকে অন্য ফাইলে ডাটা এক্সপোর্ট/ইম্পোর্ট করতে পারেন। TypeScript মডিউল ব্যবস্থাপনা JavaScript এর মডিউল সিস্টেমের সঙ্গে পুরোপুরি সামঞ্জস্যপূর্ণ, এবং এটি কোড রক্ষণাবেক্ষণ এবং স্কেলেবিলিটি বাড়াতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...