2017-03-10 9 views
7

मैं यह कर सकते हैं में foo के रूप में * निर्यात करने के लिए हैयह संभव टाइपप्रति

export * as foo from './foo' 

यह या तो काम करने के लिए प्रतीत नहीं होता .. :

import * as fooImport from './foo'; 
export const foo = fooImport; 

कोई विचार?

--- अद्यतन ---

आप क्या हासिल करने की कोशिश कर रहे हैं?

असल में, मैं अपने ऐप के लिए ngrx/store बैकएंड लागू करने पर काम कर रहा हूं। मैं इस तरह मेरे कोड को व्यवस्थित करना चाहते:

app/core/ 
    index.ts 
    viewer/ 
    index.ts 
    viewer-actions.ts 
    viewer-reducer.ts 
    view-data/ 
    index.ts 
    view-data-actions.ts 
    view-data-reducer.ts 

और मैं श्रृंखला को प्रत्येक सबसेट (आम प्रतिमान) से सभी निर्यात करने के लिए अपने index.ts फ़ाइलों का उपयोग करना चाहते हैं।

हालांकि, मैं चीजें नाम रखने वाले रखना चाहता हूं। मेरे xxx-reducer.ts और xxx-actions.ts फ़ाइलों में से प्रत्येक का नाम समान नाम (reducer, ActionTypes, Actions, ...) है ताकि सामान्य चेनिंग का नाम टकराव हो। मैं जो करने की कोशिश कर रहा हूं वह xxx-actions और xxx-reducer से सभी निर्यातों को को xxx के रूप में पुनः निर्यात करने की अनुमति है।

import { viewer, viewerData } from './core'; 

... 
    private viewer: Observable<viewer.Viewer>; 
    private viewData: Observable<viewData.ViewData>; 

    ngOnInit() { 
     this.viewer = this.store.let(viewer.getViewer()); 
     this.viewData = this.store.let(viewData.getViewData()); 
    } 

अधिक वर्बोज़ के बजाय: यह मैं करने की अनुमति होगी

import * as viewer from './core/viewer'; 
import * as viewerData from './core/viewer-data'; 

... 

सार वैसे भी यही ...

+0

आप क्या हासिल करने की कोशिश कर रहे हैं? –

+0

@ShunLuttin, ऊपर मेरे अपडेट देखें ... – Lucas

+0

मेरे पास आपके लिए जवाब है, तो। मुझे बताएं यदि आपको अधिक जानकारी की जरूरत है। –

उत्तर

7

टाइपप्रति

में foo के रूप में * निर्यात करने के लिए क्या यह संभव है

नहीं।

src/कोर/index.ts

import * as Foo from "./foo"; 
import * as Bar from "./bar"; 

export { 
    Foo, 
    Bar, 
} 

src/index.ts

import { Foo, Bar } from "./core"; 

function FooBarBazBop() { 
    Foo.Baz; 
    Foo.Bop; 
    Bar.Baz; 
    Bar.Bop; 
} 

src/कोर/foo/index.ts: हालांकि, आप एक द्विस्तरीय प्रक्रिया का उपयोग कर सकते और src/कोर/बार/index.ts

export * from "./baz"; 
export * from "./bop"; 

src/कोर/foo/baz.ts और src/कोर/बार/baz.ts

export class Baz { 

} 

src/कोर/foo/bop.ts और src/कोर/बार/बॉप।ts

export class Bop { 

} 

यह भी देखें: https://www.typescriptlang.org/docs/handbook/modules.html

+0

हाँ, मैंने इसे पढ़ा है, और पूरे मॉड्यूल को एक चर में आयात करने की कोशिश कर रहा था, और मॉड्यूल निर्यात तक पहुंचने के लिए इसका उपयोग ** ** के साथ ** पुन: निर्यात ** – Lucas

+0

बहुत बढ़िया है ... आपका अपडेट बिल्कुल है मैं क्या देख रहा था (भले ही यह 2 कदम है)। धन्यवाद। – Lucas