使用typescript中的字符串名称创建一个新类

时间:2014-01-08 00:58:31

标签: class parsing typescript

我正在编写一个XML加载器/解析器(以及对typescript的新东西),我可以很好地加载XML,但是我正在尝试动态地将XML数据解析回类/对象。问题是,我想用字符串变量创建一个类; 即 var classNameString:String = "className";

var newClass:any = new class(classNameString)

从我对互联网的许多搜索中看起来似乎不可能,而且我将不得不对类名进行硬编码。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:21)

如果您有一个特定的命名空间,则对于您要创建的所有类,您可以执行以下操作:

var newClass: any = new (<any>MyNamespace)[classNameString](parametersIfAny);

如果它们位于默认命名空间中,您只需使用window

var newClass: any = new (<any>window)[classNameString](parametersIfAny);

更新

您现在需要使用最新的TypeScript进行<any>投射,或者获得Error TS7017 Build:Element implicitly has an 'any' type because type '{}' has no index signature.