análisis sintáctico - crear una nueva clase usando un nombre de cadena en TypeScript
Estoy escribiendo un cargador/analizador de XML (y soy nuevo en TypeScript), puedo cargar el XML sin problemas, sin embargo, estoy tratando de analizar dinámicamente los datos XML de nuevo en una clase/objeto. El problema es que me gustaría crear una clase usando una variable de tipo cadena; es decir, var classNameString:String="className";;
var newClass:any = new class(classNameString)Por mis muchas búsquedas en internet, no parece posible, y voy a tener que codificar los nombres de las clases de forma fija. Cualquier ayuda sería muy apreciada.
Respuesta #1
Si tienes un espacio de nombres específico, para todas las clases que quieras crear, puedes hacer esto:
var newClass: any = new (<any>MyNamespace)[classNameString](parametersIfAny);
y si están en el espacio de nombres predeterminado, simplemente puedes usar window:
var newClass: any = new (<any>window)[classNameString](parametersIfAny);
Actualizar
Ahora necesitas tener la conversión <any> con la última versión de TypeScript o recibirás un Error TS7017 Build: Elemento tiene implícitamente un tipo 'any' porque el tipo '{}' no tiene una firma de índice.
