在任何人,標誌着這是一式兩份,請閱讀以下,創建例如,基於類名類數:字符串
我的情況並不僅僅涉及打字稿也Angular2。
目的
我需要在app.component.ts的方法,其採用一個字符串(類名稱),並創建的一個實例。這些類存在於其他的ts文件中。
我們用例: 我有一個方法getWidgetObjectFromClassName(className : string) : Object{}
它需要返回的類名是字符串格式的實例。 現在的問題,
我試過使用NameSpace和做let instance = new SampleNS['OtherName']();
(SampleNS是一個名稱空間),在單個文件的情況下工作得很好。
但現在 我有多個TS文件可以說interfaces.ts,classes.ts,otherclasses.ts。 Im在interface.ts中使用export namespace SampleNS{}
全部工作,在classes.ts中使用/// <reference path="interfaces.ts" />
和相同名稱空間SampleNS
。
現在我的方法getWidgetObjectFromClassName(className : string) : Object{}
是在xyz.ts中,現在應該給我哪個導入?,我的觀點是如果我從`./interfaces'導入{SampleNS}。 這裏的問題是我只能導入單個文件的命名空間(即使它是相同的),因此即時創建實例僅限於導入該特定文件命名空間。
Plunker鏈接https://plnkr.co/edit/pt90F34KPsGoHDpSUQFD?p=preview
有關創建導出所有的組件文件,那麼你只是需要導入該文件是什麼一個命名空間,然後你應該能夠以同樣的方式引用所有組件? –
*「之前有人將此標記爲重複請在下面閱讀,」* - 不,我喜歡通過翻轉硬幣來判斷事物是否重複。 – nnnnnn
ok gunter ...嘗試你的解決方案將回來... –