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

101
Vistas
cambie la definición de clase con el decorador TS

Estoy tratando de reproducir los @Getters de la biblioteca común de Java Lombok. El resultado sería:

 @Getters() export class Example { private property: string; }
 const test = new Example(); console.log(test.getProperty());

Para hacer esto, trato de cambiar la definición de la clase js anulándola con un decorador TS:

 import { capitalize } from "lodash"; export const Getters = () => <T extends {new(...args:any[]):{}}>(constructor:T) => { return class extends constructor { constructor(...args: any[]) { super(...args); const props = Reflect.ownKeys(this); props.forEach((prop: string) => { const capitalizedKey = capitalize(prop); const methodName = `get${capitalizedKey}`; Reflect.defineProperty(this, methodName, { value: () => this[prop], configurable: false, enumerable: false }); }); } } }

Por el momento tengo este error La propiedad X no existe en el tipo X.

Pero puedo tener el resultado con esto:

 console.log(test['getProperty']())

¿Alguien sabe cómo cambiar la definición de clase con el decorador TS, por favor?

Zona de juegos: https://typescript-lodash-playground-1fuxpz.stackblitz.io

about 4 years ago · Santiago Gelvez
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