टाइपस्क्रिप्ट में मॉड्यूल

टाइपस्क्रिप्ट में मॉड्यूल

यह लेख टाइपस्क्रिप्ट में मॉड्यूल को समझाता है।

YouTube Video

टाइपस्क्रिप्ट में मॉड्यूल

टाइपस्क्रिप्ट में मॉड्यूल कोड पुन: उपयोग और रखरखाव को बढ़ाने के लिए एक महत्वपूर्ण सुविधा है। जैसे जावास्क्रिप्ट, टाइपस्क्रिप्ट भी ECMAScript 2015 (ES6) मॉड्यूल सिस्टम पर आधारित है, लेकिन एक मुख्य विशेषता टाइपस्क्रिप्ट के प्रकार प्रणाली का लाभ उठाने की क्षमता है।

मॉड्यूल क्या हैं?

एक मॉड्यूल एक प्रणाली है जो संबंधित कोड को एक इकाई में समूहित करता है जिसे अन्य फाइलों में आयात और पुन: उपयोग किया जा सकता है। टाइपस्क्रिप्ट में प्रत्येक फाइल के लिए एक सीमा बनाई जाती है ताकि कोड को संलग्न किया जा सके और यह अन्य फाइलों को प्रभावित न करे। यह कोड टकराव को रोकने में मदद करता है और रखरखाव को आसान बनाता है।

आंतरिक और बाह्य मॉड्यूल

  • आंतरिक मॉड्यूल (नेमस्पेस): एक मॉड्यूल परिभाषा विधि जो टाइपस्क्रिप्ट 1.5 और उससे पहले उपयोग की गई थी, अब अनुशंसित नहीं है। अब इसे 'नेमस्पेस' के रूप में माना जाता है।
  • बाह्य मॉड्यूल: वर्तमान मानक, जो 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) आंतरिक मॉड्यूल संरचना है जिसका उपयोग प्रारंभिक TypeScript में कोड को समूहीकृत करने के लिए किया गया था। हालांकि, अब 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}`);

टाइपस्क्रिप्ट मॉड्यूल रेज़ॉल्यूशन

TypeScript में, मॉड्यूल रेज़ॉल्यूशन के लिए दो रणनीतियाँ हैं।

  • नोड मॉड्यूल रेज़ॉल्यूशन: Node.js परिवेशों में उपयोग की जाने वाली मानक रेज़ॉल्यूशन विधि जो node_modules फ़ोल्डर के भीतर खोज करके मॉड्यूल को हल करती है।
  • क्लासिक मॉड्यूल रेज़ॉल्यूशन: TypeScript की अपनी रेज़ॉल्यूशन विधि जो अधिक लचीली खोज करती है, लेकिन आजकल आमतौर पर उपयोग नहीं की जाती।

आमतौर पर, नोड मॉड्यूल रेज़ॉल्यूशन का उपयोग किया जाता है और यह डिफ़ॉल्ट रूप से सक्षम होता है जब तक कि कॉन्फ़िगरेशन फ़ाइल में अन्यथा निर्दिष्ट न किया गया हो।

व्यावहारिक उदाहरण

अंत में, मॉड्यूल का उपयोग करके कंप्यूटेशनल फ़ंक्शंस को लागू करने और पुन: उपयोग करने का एक उदाहरण दिखाया गया है।

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}`);

सारांश

TypeScript मॉड्यूल प्रणाली कोड को व्यवस्थित करने, पुन: उपयोग क्षमता बढ़ाने और अनुरक्षणीयता बढ़ाने के लिए एक शक्तिशाली उपकरण है। ES6 मॉड्यूल पर आधारित बाहरी मॉड्यूल का उपयोग अनुशंसित है, और export और import कीवर्ड का उपयोग मॉड्यूल को आसानी से निर्यात और आयात करने की अनुमति देता है।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video