खोज…
वाक्य - विन्यास
- 'मॉड्यूल' से defaultMember आयात करें;
- 'मॉड्यूल' से {सदस्य, सदस्य, ...} आयात करें;
- आयात * 'मॉड्यूल' से मॉड्यूल के रूप में;
- आयात {एक सदस्य के रूप में MLA, सदस्य, ...} 'मॉड्यूल' से;
- डिफ़ॉल्ट रूप से आयात करें, * 'मॉड्यूल' से मॉड्यूल के रूप में;
- डिफ़ॉल्ट मॉड्यूल, आयात {मॉड्यूलए, ...} 'मॉड्यूल' से;
- आयात 'मॉड्यूल';
टिप्पणियों
MDN से (जोर दिया गया):
यह सुविधा इस समय किसी भी ब्राउज़र में मूल रूप से लागू नहीं की गई है । यह कई ट्रांसपैरर्स में लागू किया जाता है, जैसे ट्रेसुर कंपाइलर , बैबेल या रोलअप ।
कई transpilers में ES6 मॉड्यूल वाक्य रचना में परिवर्तित करने में सक्षम हैं CommonJS नोड पारिस्थितिकी तंत्र में उपयोग करते हैं, या के लिए RequireJS या System.js ब्राउज़र में उपयोग के लिए।
यह भी संभव है कि ब्राउजर की तरह एक मॉड्यूल बंडलर का उपयोग करना एक इंटर फाइल में इंटर-डिपेंडेंट कॉमनजेएस मॉड्यूल के सेट को संयोजित करना है जिसे ब्राउजर में लोड किया जा सकता है।
डिफ़ॉल्ट निर्यात
नामित आयातों के अलावा, आप एक डिफ़ॉल्ट निर्यात प्रदान कर सकते हैं।
// circle.js
export const PI = 3.14;
export default function area(radius) {
return PI * radius * radius;
}
आप डिफ़ॉल्ट निर्यात आयात करने के लिए एक सरलीकृत वाक्यविन्यास का उपयोग कर सकते हैं।
import circleArea from './circle';
console.log(circleArea(4));
ध्यान दें कि एक डिफ़ॉल्ट निर्यात अंतर्निहित रूप से नाम default
साथ एक नामित निर्यात के बराबर है, और आयातित बंधन (ऊपर circleArea
) केवल एक उपनाम है। पिछले मॉड्यूल की तरह लिखा जा सकता है
import { default as circleArea } from './circle';
console.log(circleArea(4));
आप प्रति मॉड्यूल केवल एक डिफ़ॉल्ट निर्यात कर सकते हैं। डिफ़ॉल्ट निर्यात का नाम छोड़ा जा सकता है।
// named export: must have a name
export const PI = 3.14;
// default export: name is not required
export default function (radius) {
return PI * radius * radius;
}
साइड इफेक्ट्स के साथ आयात करना
कभी-कभी आपके पास एक मॉड्यूल होता है जिसे आप केवल आयात करना चाहते हैं ताकि उसका शीर्ष-स्तरीय कोड चला जाए। यह पॉलीफिल्स, अन्य ग्लोबल्स या कॉन्फ़िगरेशन के लिए उपयोगी है जो केवल एक बार चलता है जब आपका मॉड्यूल आयात किया जाता है।
test.js
नाम की फ़ाइल दी test.js
:
console.log('Initializing...')
आप इसे इस तरह से उपयोग कर सकते हैं:
import './test'
यह उदाहरण Initializing...
कंसोल को प्रिंट करेगा।
एक मॉड्यूल को परिभाषित करना
ECMAScript 6 में, मॉड्यूल सिंटैक्स ( import
/ export
) का उपयोग करते समय, प्रत्येक फ़ाइल एक निजी नेमस्पेस के साथ अपना स्वयं का मॉड्यूल बन जाता है। शीर्ष-स्तरीय फ़ंक्शन और चर वैश्विक नामस्थान को प्रदूषित नहीं करते हैं। आयात करने के लिए अन्य मॉड्यूल के लिए फ़ंक्शंस, कक्षाएं, और चर को उजागर करने के लिए, आप export
कीवर्ड का उपयोग कर सकते हैं।
// not exported
function somethingPrivate() {
console.log('TOP SECRET')
}
export const PI = 3.14;
export function doSomething() {
console.log('Hello from a module!')
}
function doSomethingElse(){
console.log("Something else")
}
export {doSomethingElse}
export class MyClass {
test() {}
}
नोट: ईएस 5 जावास्क्रिप्ट फ़ाइलें <script>
टैग के माध्यम से भरी हुई हैं जब import
/ export
का उपयोग नहीं किया जाएगा।
केवल वे मूल्य जो स्पष्ट रूप से निर्यात किए जाते हैं, वे मॉड्यूल के बाहर उपलब्ध होंगे। बाकी सब कुछ निजी या दुर्गम माना जा सकता है।
इस मॉड्यूल को आयात करने से उपज होगी (पिछले कोड ब्लॉक को my-module.js
):
import * as myModule from './my-module.js';
myModule.PI; // 3.14
myModule.doSomething(); // 'Hello from a module!'
myModule.doSomethingElse(); // 'Something else'
new myModule.MyClass(); // an instance of MyClass
myModule.somethingPrivate(); // This would fail since somethingPrivate was not exported
एक अन्य मॉड्यूल से नामित सदस्यों को आयात करना
यह देखते हुए कि एक मॉड्यूल खंड को परिभाषित करने से मॉड्यूल फ़ाइल test.js
में मौजूद है, आप उस मॉड्यूल से आयात कर सकते हैं और निर्यात किए गए test.js
का उपयोग कर सकते हैं:
import {doSomething, MyClass, PI} from './test'
doSomething()
const mine = new MyClass()
mine.test()
console.log(PI)
somethingPrivate()
मॉड्यूल somethingPrivate()
विधि test
मॉड्यूल से निर्यात नहीं किया गया था, इसलिए इसे आयात करने का प्रयास विफल हो जाएगा:
import {somethingPrivate} from './test'
somethingPrivate()
एक संपूर्ण मॉड्यूल आयात करना
मॉड्यूल या मॉड्यूल के डिफ़ॉल्ट निर्यात से नामांकित सदस्यों को आयात करने के अलावा, आप सभी सदस्यों को नेमस्पेस बाइंडिंग में भी आयात कर सकते हैं।
import * as test from './test'
test.doSomething()
सभी निर्यात किए गए सदस्य अब test
चर पर उपलब्ध हैं। गैर-निर्यात किए गए सदस्य उपलब्ध नहीं हैं, जैसे कि वे नामित सदस्य आयात के साथ उपलब्ध नहीं हैं।
नोट: मॉड्यूल './test'
का पथ लोडर द्वारा हल किया गया है और ECMAScript विनिर्देश द्वारा कवर नहीं किया गया है - यह किसी भी संसाधन के लिए एक स्ट्रिंग हो सकता है (एक पथ - रिश्तेदार या निरपेक्ष - एक फाइलसिस्टम पर, एक URL के लिए एक नेटवर्क संसाधन, या कोई अन्य स्ट्रिंग पहचानकर्ता)।
उपनाम वाले सदस्यों को आयात करना
कभी-कभी आप ऐसे सदस्यों का सामना कर सकते हैं, जिनके पास वास्तव में लंबे सदस्य नाम हैं, जैसे कि यह thisIsWayTooLongOfAName()
। इस स्थिति में, आप सदस्य को आयात कर सकते हैं और इसे अपने वर्तमान मॉड्यूल में उपयोग करने के लिए एक छोटा नाम दे सकते हैं:
import {thisIsWayTooLongOfAName as shortName} from 'module'
shortName()
आप इस तरह कई लंबे सदस्य नाम आयात कर सकते हैं:
import {thisIsWayTooLongOfAName as shortName, thisIsAnotherLongNameThatShouldNotBeUsed as otherName} from 'module'
shortName()
console.log(otherName)
और अंत में, आप सामान्य सदस्य आयात के साथ आयात उपनाम मिला सकते हैं:
import {thisIsWayTooLongOfAName as shortName, PI} from 'module'
shortName()
console.log(PI)
कई नामित सदस्यों का निर्यात करना
const namedMember1 = ...
const namedMember2 = ...
const namedMember3 = ...
export { namedMember1, namedMember2, namedMember3 }