He intentado definir un captador personalizado como este:
import { Expose } from 'class-transformer'; export class MyDTOResponse { @Expose() id: string; @Expose() name: string; @Expose() get thisIsATest(): string { return 'yolo'; } }Así es como lo transformo:
plainToClass(MyDTOResponse, MyRawDataObject, { excludeExtraneousValues: true, });Como se describe en la documentación aquí: https://github.com/typestack/class-transformer#exposing-getters-and-method-return-values
Sin embargo, la respuesta es sólo:
{ "id": "f8c213c7-5853-4d01-b424-cb0349a6c580", "name": "Clean the kitchen!" }No estoy seguro de qué estoy haciendo mal exactamente, pero me falta la propiedad "thisIsATest".
plainToClass devolverá una instancia. Si console.log esta instancia, no puede ver la propiedad "thisIsATest". Puedes probar el siguiente código:
const res = plainToClass(MyDTOResponse, MyRawDataObject, { excludeExtraneousValues: true, }); console.log(res.thisIsATest); // yolo console.log(instanceToPlain(res)) // { // id: 'f8c213c7-5853-4d01-b424-cb0349a6c580', // name: 'Clean the kitchen!', // thisIsATest: 'yolo' // } Por cierto, plainToClass está en desuso, use el método plainToInstance en su lugar.