2016-12-22 12 views
11

क्यों काम करता है:नाम निर्यात एक वस्तु निर्यात बनाम

const str = 'stuff'; 
export { 
    str 
}; 

लेकिन इस:

export default { 
    str: 'stuff' 
}; 

मैं निम्नलिखित के रूप में आयात करना चाहते हैं:

import { str } from 'myLib'; 

मैं सीधे निर्यात में मूल्य असाइन करना चाहता हूं और हाथ से पहले एक चर बनाने की आवश्यकता नहीं है।

इसके अलावा जब मैं कोशिश:

SyntaxError: /home/karlm/dev/project/ex.js: Unexpected token, expected , (41:5) 
    39 | 
    40 | export { 
> 41 | str: 'stuff' 
    | ^
    42 | }; 
    43 | 
+0

कितना निर्यात वाक्य रचना काम करता है:

import {str} from 'myModule'; // 'stuff', from the first example 

ब्रेसिज़ के बिना, यह डिफ़ॉल्ट निर्यात आयात करता है। यह * ऑब्जेक्ट डिस्ट्रक्चरिंग की तरह दिखता है, जो मुझे लगता है कि आपने * ऑब्जेक्ट * निर्यात करने में सक्षम होने की उम्मीद क्यों की है, लेकिन दोनों अवधारणाएं मूल रूप से अलग हैं। संबंधित पढ़ने: http://stackoverflow.com/questions/33524696/es6-destructuring-and-module-imports – CodingIntrigue

+1

संबंधित प्रकार: [ES6 विनाशकारी और मॉड्यूल आयात] (http://stackoverflow.com/q/33524696/218196) –

+1

यह भी संबंधित है: [जावास्क्रिप्ट (ES6), निर्यात कॉन्स बनाम निर्यात डिफ़ॉल्ट] (http://stackoverflow.com/q/33611812/218196) –

उत्तर

0

export statement का मुख्य कारण (काम करता है, किसी दिए गए फ़ाइल से वस्तुओं या पुरातन निर्यात करने के लिए इस्तेमाल किया जाता है:

export { 
    str: 'stuff' 
}; 

मैं त्रुटि मिलती है या मॉड्यूल)।

लेकिन आपको निर्यात करने के लिए एक पहचानकर्ता की आवश्यकता है (ताकि इसे import के माध्यम से किसी अन्य स्क्रिप्ट में आयात किया जा सके)।

आप बस कर सकते हैं:

export const obj = { 
    str: 'stuff' 
}; 

import के दौरान, आप एक ही नाम obj उपयोग करने के लिए संबंधित मान को संदर्भित करने में सक्षम हो जाएगा।

और इसे पसंद आयात:

import { obj } from 'myLib'; 
6

ES6 में निर्यात की दो शैलियों रहे हैं - "सामान्य" निर्यात, और डिफ़ॉल्ट निर्यात। सामान्य निर्यात इस तरह वाक्य रचना के साथ निर्यात हो:

export const str = 'stuff'; 
// or 
const str = 'stuff'; 
export {str}; 

डिफ़ॉल्ट निर्यात इस तरह जाना:

export default const str = 'stuff'; 
// or 
export default { 
    str: 'stuff' 
}; 

अंतर दिखाई देता है जब आप आयात करते हैं। पहले के साथ, आप ब्रेसिज़ शामिल करने की जरूरत:

import myModule from 'myModule'; // {str: 'stuff'}, from the second example 
+0

आपके पहले भाग के बारे में मेरा प्रश्न अपडेट किया गया, मुझे एक त्रुटि मिली। –

+0

क्षमा करें, मेरा बुरा। संपादित। – Scimonster

संबंधित मुद्दे