¿Hay alguna manera de obtener todos los resultados de captadores en la instancia sin una invocación específica? Quiero que todos los captadores de clase sean miembros simples de la clase haciendo un bucle en el miembro de la clase.
Tengo una clase como esta:
export class Test { constructor() {} get foo() { return 1 } get bar() { return 2 } } El uso es crear una nueva instancia: const test = new Test()
¿Hay alguna manera de obtener todos los captadores como miembros de variables de clase simples y no como funciones? para poder pasar el objeto del servidor al cliente.
¡Gracias!
class Test { constructor() {} get foo() { return 1 } get bar() { return 2 } } const allGetterKeys = Object.entries(Object.getOwnPropertyDescriptors(Test.prototype)).filter(([key, descriptor]) => typeof descriptor.get === 'function').map(([key]) => key); const test = new Test(); const out = {}; for(const key of allGetterKeys) { out[key] = test[key]; } console.log(out); La primera línea proviene de esta respuesta (obtiene los nombres clave de todos los captadores de la clase). Luego, el ciclo for usa todas esas teclas para obtener la salida del captador y colocarlas en out objeto simple. Ese objeto es solo pares de valores clave.