Pra*_*kar 7 typescript typescript1.8 angular
在任何人将此标记为重复之前,请阅读下文,
我的场景不仅涉及TypeScript,还涉及Angular2.
目的
我需要app.component.ts中的一个方法,它接受一个字符串(Class Name)并创建一个实例.这些类存在于其他ts文件中.
现在用例:
我有一个方法getWidgetObjectFromClassName(className : string) : Object{} 需要返回字符串格式的类名实例.现在问题,
我尝试使用NameSpace并做let instance = new SampleNS['OtherName']();(SampleNS是一个命名空间),在单个文件的情况下工作得很好.
但是现在
我有多个ts文件可以说interfaces.ts,classes.ts,otherclasses.ts.我export namespace SampleNS{}在interface.ts中使用所有工作,接下来在classes.ts中使用/// <reference path="interfaces.ts" />和相同的命名空间SampleNS.
现在我的方法getWidgetObjectFromClassName(className : string) : Object{}是在xyz.ts中,现在我应该给哪个导入?,我的观点是,如果我从'./interfaces'说`import {SampleNS}.这里的问题是我只能导入单个文件的命名空间(即使它是相同的)因此我创建实例仅限于导入该特定文件命名空间.
Plunker Link https://plnkr.co/edit/pt90F34KPsGoHDpSUQFD?p=preview
Gün*_*uer 12
as与导入一样使用
import * as widgets from './lib';
...
this.widgetInstance = new widgets[className]();
Run Code Online (Sandbox Code Playgroud)
我从另一个答案中记得这个,但我找不到它给予一些信任: - /
| 归档时间: |
|
| 查看次数: |
5121 次 |
| 最近记录: |