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

Class 使用typescript中的字符串名称创建新类,class,parsing,typescript,Class,Parsing,Typescript,我正在编写一个XML加载程序/解析器(也是typescript的新手),我可以很好地加载XML,但是我正在尝试将XML数据动态解析回类/对象中。问题是,我想使用字符串变量创建一个类; 即 var classNameString:String=“className” var newClass:any=新类(classNameString) 从我在互联网上的多次搜索来看,这似乎是不可能的,我将不得不硬编码类名。非常感谢您的帮助。如果您有一个特定的名称空间,对于所有要创建的类,您可以执行以下操作: v

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

var newClass:any=新类(classNameString)


从我在互联网上的多次搜索来看,这似乎是不可能的,我将不得不硬编码类名。非常感谢您的帮助。

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

var newClass: any = new (<any>MyNamespace)[classNameString](parametersIfAny);
更新
您现在需要使用最新的TypeScript对
进行强制转换,否则会出现
错误TS7017 Build:Element隐式具有“any”类型,因为类型“{}”没有索引签名。

听起来与相同。这就是一个,非常感谢!工作很好。。。又漂亮又干净!这在nodejs中也有效吗?@JaumeMussonsAbad:试试,让我知道。假设nodejs仍然使用标准实例创建,它应该可以工作(名称空间的定义是正确的)。我的第一个结果表明它在nodejs中不工作:“ReferenceError:window未定义”。@isgoed:这从未在nodejs中测试过,因此可能存在其他名称空间。请提出一个显示代码的新问题。谢谢
var newClass: any = new (<any>window)[classNameString](parametersIfAny);