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

use*_*294 11 parsing class typescript

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

var newClass:any = new class(classNameString)

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

Gon*_*ing 22

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

var newClass: any = new (<any>MyNamespace)[classNameString](parametersIfAny);
Run Code Online (Sandbox Code Playgroud)

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

var newClass: any = new (<any>window)[classNameString](parametersIfAny);
Run Code Online (Sandbox Code Playgroud)

更新

你现在需要<any>使用最新的TypeScript 进行演员表,或者你得到一个Error TS7017 Build:Element implicitly has an 'any' type because type '{}' has no index signature.

  • 我的第一个结果说它在 nodejs 中不起作用:“ReferenceError: window is not defined”。 (2认同)