Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

264
Vistas
¿Crear declaración de clase mediante programación en javascript?

Eventualmente, lo que necesito es crear una declaración de clase en tiempo de ejecución que proporcione parámetros dinámicos a una anotación de propiedad:

 import {Type} from "external-module"; export default class TypeWrapper { @Type(() => '{this part of the class declaration should be changable at runtime}') data }

Tengo la sensación de que esto debería ser posible de lograr, pero todavía no puedo encontrar la manera adecuada.

Como prueba de concepto, estaba tratando de hacer algo como lo siguiente:

 let MyClass = eval('(class MyClass{})') let myClass = new MyClass()

Eso funciona, sin embargo, MyClass necesita definir algunas importaciones:

 let MyClass = eval('import {Type} from "external-module"' + '(class MyClass{})')

Ese falla con " Cannot use import statement outside a module ", lo cual es bastante esperado.

Otro enfoque que probé es cargar un módulo desde una cadena:

 var moduleData = '' + 'import module from "./module/path/file.js"\n' + '\n' + 'export default class MyClass {\n' + '}\n' + '\n'; var b64moduleData = "data:text/javascript;base64," + btoa(moduleData); let MyClass = await import(b64moduleData)

Pero falla con " Cannot find module ", lo que sugiere que asume que b64moduleData es una ruta en lugar de los datos del módulo en sí.

¿Alguien tiene alguna sugerencia?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Normalmente, para este tipo de cosas usaría una fábrica de clases:

 import { Type } from 'some-module'; function createClass(parameters) { return class { .... } } const MyClass = createClass(...);

No estoy seguro de si esto se ajusta a su caso de uso particular según los detalles proporcionados.

EDITAR: Como nota al margen, hasta donde yo sé, no puede construir módulos a partir de una cadena, que es lo que está haciendo su código y de lo que se queja el compilador.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda