Quiero crear clases dinámicamente en tiempo de ejecución y quiero parametrizar el nombre de la clase.
function newClass(className:string) { return class MyDynamicClass { } } // expected class name: "Person" let personClass = newClass("Person") // expected class name: "Contact" let contactClass = newClass("Contact")PD: La pregunta duplicada propuesta ( nombres de clase dinámica ES6 ) tiene una respuesta aceptada incorrecta y otras respuestas no cumplen con mis requisitos.
No creo que sea posible hacer un nombre de clase dinámico como aquí:
class [className] {} No esta permitido. Sin embargo, puede crear un objeto con la propiedad className ( expresión de clase ):
const newClass = (className: string) => ({ [className]: class { } }[className]) // expected class name: "Person" let personClass = newClass("Person") personClass.name // Person Lo sé, personClass devuelve class {} sin nombre. Creo que esta es la solución de trabajo más cercana.