2015-12-23 20 views
8

मैं दो जावास्क्रिप्ट मॉड्यूल है कि इस तरह दिखता है:निर्यात एक आयातित मॉड्यूल

// inner/mod.js 
export function myFunc() { 
    // ... 
} 

// mod.js 
import * as inner from "./inner/mod"; 

मैं mod.js से myFunc निर्यात करना चाहते हैं। मैं यह कैसे कर सकता हूँ?

संपादित करें: मुझे यह स्पष्ट करना चाहिए कि समारोह को inner/mod.js से अपेक्षित के रूप में निर्यात किया जा रहा है, लेकिन मैं बाहरी mod.js से फ़ंक्शन निर्यात करना चाहता हूं।

स्पष्टीकरण के लिए पूछ उन के लिए, मैं इस लक्ष्य को हासिल करना चाहते हैं:

// SomeOtherFile.js 
import * as mod from "mod"; // NOT inner/mod 

mod.myFunc(); 
+0

क्या आपको कोई त्रुटि मिल रही है? – Enijar

+0

नहीं मुझे कोई त्रुटि नहीं मिल रही है। लेकिन मैं 'mod' से कुछ भी निर्यात नहीं कर रहा हूं। ध्यान दें कि कोई निर्यात विवरण नहीं है। – Max

+0

क्या आप इस बारे में विस्तार से बता सकते हैं कि आप इस जगह का उपयोग करने की अपेक्षा कैसे कर रहे हैं? मैं आपके प्रश्न से स्पष्ट नहीं हूं कि आप क्या हासिल करने की कोशिश कर रहे हैं .. – azium

उत्तर

17

मेरा मानना ​​है कि क्या आप के लिए देख रहे हैं

export * from './inner/mod'; 

कि reexports होगा ./inner/mod के सभी निर्यात है। spec वास्तव में एक बहुत ही अच्छी तालिका है, जिसमें सभी संभावित export और import वेरिएंट सूचीबद्ध हैं।

+0

काम करने के लिए एकमात्र तरीका 'आयात मोड से है' ./inner/mod "; निर्यात {mod} '। '/inner/mod 'से' निर्यात * का उपयोग करना; 'काम नहीं लग रहा है। – Max

+0

असल में, यह काम करता है। यह काम नहीं करता है, हालांकि, अगर 'आंतरिक/mod' एक डिफ़ॉल्ट कार्य निर्यात करता है। – Max

+3

हाँ, इसमें केवल निर्यात नाम शामिल होंगे। आप './inner/mod' से 'निर्यात {डिफ़ॉल्ट} के साथ डिफ़ॉल्ट निर्यात को स्पष्ट रूप से निर्यात कर सकते हैं; '। –

7
// inner/mod.js 
export function myFunc() { 
    // ... 
} 

// mod.js 
import { myFunc } from "./inner/mod"; 
export { myFunc }; 

प्रयास करें कि आप क्या आयात करते हैं, कम बेहतर है, में स्पष्ट हो सकता है क्योंकि इस बात का मैं अपने आयात को बदल दिया है mod.js. में यदि आप आयात * करते हैं, तो आप एक चर परिभाषित करते हैं जो आपके द्वारा आयात किए गए मॉड्यूल से सभी नाम निर्यात का ऑब्जेक्ट होगा।

पुन: निर्यात करना आपके और कुछ निर्यात करने जैसा ही है।

+0

क्या पूरे ऑब्जेक्ट को निर्यात करना संभव है? मैं एक 'इंडेक्स' मॉड्यूल रखना चाहता हूं जो सभी उप-मॉड्यूल निर्यात करता है। – Max

+0

ओह हाँ यह है, आप स्थिर, वस्तुओं, सरणी, तार, संख्या आदि कुछ भी निर्यात कर सकते हैं। क्या होता है कि निर्यात की गई सभी चीजें एक महत्वपूर्ण-मूल्य वस्तु में जाती हैं। कुंजी निर्यात का नाम है, मूल्य .. अच्छी तरह से आप जिस चीज को निर्यात कर रहे हैं .. आप अभिव्यक्तियों को निर्यात नहीं कर सकते हैं। – Norbert

+0

आप जितनी चाहें उतनी चीजें निर्यात कर सकते हैं। – Norbert

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