क्या मैं आयात पर एक डिफ़ॉल्ट निर्यात वस्तु को नष्ट कर सकता हूं?
नहीं। आप इसे एक चर में आयात करने के बाद केवल एक वस्तु को नष्ट कर सकते हैं।
ध्यान दें कि आयात/निर्यात में वाक्यविन्यास और अर्थशास्त्र हैं जो ऑब्जेक्ट अक्षर/ऑब्जेक्ट पैटर्न से बिल्कुल अलग हैं। एकमात्र आम बात यह है कि दोनों घुंघराले ब्रेसिज़ का उपयोग करते हैं, और उनके शॉर्टेंड प्रतिनिधित्व (केवल पहचानकर्ता नाम और अल्पविराम के साथ) अलग-अलग हैं।
क्या निम्न आयात वाक्यविन्यास वैध जेएस है?
import { foo, bar } from './export-file';
हां। यह मॉड्यूल से दो नामित निर्यात आयात करता है। यह जिसका अर्थ है "एक बाध्यकारी foo
घोषित करने और इसे संदर्भ चर कि export-file
से नाम foo
के तहत निर्यात किया गया था, और एक बाध्यकारी bar
घोषित करने और इसे संदर्भ चर के तहत निर्यात किया गया था जाने के लिए
import { foo as foo, bar as bar } from './export-file';
एक आशुलिपि संकेतन है export-file
से bar
नाम "।
निम्नलिखित निर्यात वाक्य रचना (निर्यात डिफ़ॉल्ट)
export default { foo, bar };
इस के साथ ऊपर आयात काम करता है को देखते हुए?
सं क्या यह होता है, एक अदृश्य चर घोषित वस्तु { foo: foo, bar: bar }
के साथ आरंभ, और नाम default
के तहत निर्यात करने के लिए है।
इस मॉड्यूल export-file
के रूप में आयात किया जाता है, नाम default
इस्तेमाल किया नहीं किया जाएगा और नाम foo
और bar
पाया जा नहीं होगा जो एक SyntaxError
की ओर जाता है।
इसे ठीक करने के लिए आपको या तो डिफ़ॉल्ट निर्यात वस्तु आयात करने की आवश्यकता:
import { default as obj } from './export-file';
const {foo: foo, bar: bar} = obj;
// or abbreviated:
import obj from './export-file';
const {foo, bar} = obj;
या फिर आप अपने आयात वाक्य रचना रखने के लिए और के बजाय नामित निर्यात का उपयोग करें:
export { foo as foo, bar as bar };
// or abbreviated:
export { foo, bar };
// or right in the respective declarations:
export const foo = …;
export function bar() { ... }
अच्छा सवाल मैं वहाँ लग रही है लेकिन वे 'निर्यात डिफ़ॉल्ट {ए, बी} 'http://exploringjs.com/es6/ch_modules.html –
का भी उपयोग करते हैं जिन्होंने कहा कि यह काम नहीं करना चाहिए? लेकिन मैं उनके साथ सहमत हूं, यह काम नहीं करना चाहिए। क्या आप अपनी पर्यावरण सेटिंग्स प्रदान कर सकते हैं या कहीं डेमो प्रोजेक्ट साझा कर सकते हैं? – Bergi
@ बर्गि: आपने किया :) लेकिन मुझे इस वाक्यविन्यास बाधा को spec में वर्तनी नहीं दिखाई दे रही है ... – sfletche