টাইপস্ক্রিপ্টে মডিউল
এই প্রবন্ধে টাইপস্ক্রিপ্টে মডিউল সম্পর্কে ব্যাখ্যা করা হয়েছে।
YouTube Video
টাইপস্ক্রিপ্টে মডিউল
টাইপস্ক্রিপ্টে মডিউল কোডের পুনঃব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ উন্নত করার একটি গুরুত্বপূর্ণ বৈশিষ্ট্য। জাভাস্ক্রিপ্টের মতো, টাইপস্ক্রিপ্টও ECMAScript 2015 (ES6) মডিউল সিস্টেমের উপর ভিত্তি করে, তবে একটি মূল বৈশিষ্ট্য হল টাইপস্ক্রিপ্টের টাইপ সিস্টেমের সুবিধা গ্রহণের সক্ষমতা।
মডিউল কী?
একটি মডিউল একটি সিস্টেম যা সম্পর্কিত কোডকে একটি একক ইউনিটে গোষ্ঠী করে যা অন্যান্য ফাইলে ইম্পোর্ট এবং পুনঃব্যবহার করা যেতে পারে। টাইপস্ক্রিপ্টে, কোডটি সন্নিবেশিত করতে প্রতি ফাইলে একটি স্কোপ তৈরি হয়, যা এটি অন্য ফাইলগুলিকে প্রভাবিত করা থেকে বিরত রাখে। এটি কোড সংঘর্ষ এড়াতে সাহায্য করে এবং রক্ষণাবেক্ষণ আরও সহজ করে তোলে।
আন্তরিক এবং বাইরের মডিউল
- আন্তরিক মডিউল (নেমস্পেস): টাইপস্ক্রিপ্ট ১.৫ এবং তার আগের সংস্করণে ব্যবহার করা মডিউল সংজ্ঞা পদ্ধতি, যা এখন সুপারিশ করা হয় না। এটি এখন একটি 'নেমস্পেস' হিসাবে বিবেচিত হয়।
- বাইরের মডিউল: বর্তমান মানদণ্ড, যা ES6 মডিউল সিস্টেমের উপর ভিত্তি করে। এই অংশটি মূলত বাহ্যিক মডিউলগুলি ব্যাখ্যা করে।
মডিউল কীভাবে এক্সপোর্ট করবেন
মডিউল তৈরির সময়, বাইরের অ্যাক্সেসের জন্য এক্সপোর্ট করা অপরিহার্য। টাইপস্ক্রিপ্টে, আপনি export
কীওয়ার্ড ব্যবহার করে মান, ফাংশন, শ্রেণি ইত্যাদি এক্সপোর্ট করতে পারেন। মূলত দুটি ধরনের এক্সপোর্ট রয়েছে।
নামযুক্ত এক্সপোর্ট
একাধিক এক্সপোর্ট তৈরির জন্য ব্যবহৃত হয়, যা ইম্পোর্ট পক্ষকে নির্দিষ্টগুলো নির্বাচন এবং ব্যবহার করতে সক্ষম করে।
1// mathUtils.ts
2export const pi: number = 3.14159;
3
4export function add(x: number, y: number): number {
5 return x + y;
6}
7
8export function subtract(x: number, y: number): number {
9 return x - y;
10}
ডিফল্ট এক্সপোর্ট
যখন আপনি চান পুরো মডিউলে একটি একক ডিফল্ট এক্সপোর্ট থাকে তখন ব্যবহৃত হয়। ডিফল্ট এক্সপোর্ট নাম ছাড়াই এক্সপোর্ট করা হয়, যা ইম্পোর্ট পক্ষকে যেকোনো নাম দিয়ে সেগুলো গ্রহণ করার অনুমতি দেয়।
1// calculator.ts
2export default class Calculator {
3 add(x: number, y: number): number {
4 return x + y;
5 }
6
7 subtract(x: number, y: number): number {
8 return x - y;
9 }
10}
মডিউলগুলি কীভাবে আমদানি করবেন
মডিউল ব্যবহার করতে, আপনি import
কীওয়ার্ড ব্যবহার করে মডিউলের মধ্যে থেকে মান, ফাংশন, ক্লাস ইত্যাদি আমদানি করেন।
নামযুক্ত আমদানি
নামযুক্ত এক্সপোর্ট থেকে নির্দিষ্ট উপাদান আমদানি করার সময়, কার্লি ব্রেস {}
ব্যবহার করুন।
1// main.ts
2import { pi, add, subtract } from './mathUtils';
3
4console.log(`Value of pi: ${pi}`);
5console.log(`Addition: ${add(10, 5)}`);
6console.log(`Subtraction: ${subtract(10, 5)}`);
ডিফল্ট আমদানি
ডিফল্ট এক্সপোর্ট আমদানি করার সময়, আপনি এটি যেকোনো নাম দিয়ে গ্রহণ করতে পারেন।
1// main.ts
2import Calculator from './calculator';
3
4const calculator = new Calculator();
5console.log(`Addition: ${calculator.add(10, 5)}`);
6console.log(`Subtraction: ${calculator.subtract(10, 5)}`);
আমদানির ছদ্মনাম
নাম সংঘর্ষ এড়াতে বা দীর্ঘ নাম সংক্ষেপ করতে, আপনি একটি ছদ্মনাম দিয়ে আমদানি করতে পারেন।
1// main.ts
2import { add as addition, subtract as subtraction } from './mathUtils';
3
4console.log(`Addition: ${addition(10, 5)}`);
5console.log(`Subtraction: ${subtraction(10, 5)}`);
মডিউল এবং নেমস্পেস-এর মধ্যে পার্থক্য
নেমস্পেস (namespace
) হল একটি অভ্যন্তরীণ মডিউল কাঠামো যা প্রাথমিক টাইপস্ক্রিপ্টে কোড একত্রিত করার জন্য ব্যবহৃত হয়। তবে এখন ES6 মডিউলগুলি সুপারিশ করা হয় এবং নেমস্পেস খুব কমই প্রয়োজন।
নেমস্পেস একই ফাইলের মধ্যে বা একাধিক ফাইল জুড়ে সংজ্ঞায়িত করা যেতে পারে, এবং যেহেতু এগুলি বিশ্বব্যাপী প্রসারিত হতে পারে, তাই নির্ভরশীলতাগুলি পরিচালনা করা কঠিন হয়ে যেতে পারে। অন্যদিকে, মডিউলগুলির প্রতিটি ফাইলে পৃথক স্কোপ থাকে এবং স্পষ্ট নির্ভরশীলতা থাকে, যা তাদের একটি আরও আধুনিক এবং সুরক্ষিত পদ্ধতির করে তোলে।
1// Example of a namespace
2namespace Geometry {
3 export function calculateArea(radius: number): number {
4 return Math.PI * radius * radius;
5 }
6}
7
8// Can be used directly without importing the module (not recommended)
9const area: number = Geometry.calculateArea(5);
10console.log(`Area: ${area}`);
টাইপস্ক্রিপ্ট মডিউল রেজোলিউশন
টাইপস্ক্রিপ্টে মডিউল রেজোলিউশনের জন্য দুটি কৌশল রয়েছে।
- নোড মডিউল রেজোলিউশন: নোড.জেএস পরিবেশে ব্যবহৃত একটি স্ট্যান্ডার্ড রেজোলিউশন পদ্ধতি যা
node_modules
ফোল্ডারের মধ্যে অনুসন্ধান করে মডিউলগুলি সমাধান করে। - ক্লাসিক মডিউল রেজোলিউশন: টাইপস্ক্রিপ্টের নিজস্ব রেজোলিউশন পদ্ধতি যা আরও নমনীয় অনুসন্ধান করে, তবে এটি আজকাল সাধারণত ব্যবহৃত হয় না।
সাধারণত, নোড মডিউল রেজোলিউশন ব্যবহার করা হয় এবং এটি ডিফল্টভাবে সক্ষম থাকে যদি না কনফিগারেশন ফাইলে অন্যথা নির্দিষ্ট করা হয়।
ব্যবহারিক উদাহরণ
অবশেষে, মডিউল ব্যবহার করে গণনামূলক ফাংশন বাস্তবায়ন এবং পুনরায় ব্যবহার করার একটি উদাহরণ দেখানো হয়েছে।
mathUtils.ts
1export const pi: number = 3.14159;
2
3export function multiply(x: number, y: number): number {
4 return x * y;
5}
6
7export function divide(x: number, y: number): number {
8 if (y === 0) {
9 throw new Error("Cannot divide by zero");
10 }
11 return x / y;
12}
calculator.ts
1import { multiply, divide } from './mathUtils';
2
3export default class Calculator {
4 multiplyNumbers(x: number, y: number): number {
5 return multiply(x, y);
6 }
7
8 divideNumbers(x: number, y: number): number {
9 return divide(x, y);
10 }
11}
main.ts
1import Calculator from './calculator';
2
3const calculator = new Calculator();
4
5const result1: number = calculator.multiplyNumbers(10, 5);
6console.log(`Multiplication: ${result1}`);
7
8const result2: number = calculator.divideNumbers(10, 2);
9console.log(`Division: ${result2}`);
সারসংক্ষেপ
টাইপস্ক্রিপ্ট মডিউল সিস্টেম হলো কোড সংগঠিত করা, পুনরায় ব্যবহারের সামর্থ্য বৃদ্ধি করা, এবং রক্ষণাবেক্ষণযোগ্যতা বাড়ানোর জন্য একটি শক্তিশালী সরঞ্জাম। ES6 মডিউলগুলির উপর ভিত্তি করে বাহ্যিক মডিউল ব্যবহার করা সুপারিশ করা হয়, এবং export
এবং import
কীওয়ার্ডগুলি ব্যবহার করে মডিউলগুলি সহজেই এক্সপোর্ট এবং ইমপোর্ট করা সম্ভব হয়।
আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।