typescript - class-transformer Excluir propiedades indefinidas
Excluir propiedades indefinidas o nulas de la clase. Esta es la naturaleza real, pero necesito un decorador que pueda ignorar esto
import {Expose, plainToClass} from "class-transformer";
class User {
@Expose() id: number;
@Expose() firstName: string;
@Expose() lastName: string;
}
const fromPlainUser = {
unkownProp: 'hello there',
firstName: 'Umed',
lastName: 'Khudoiberdiev',
}
console.log(plainToClass(User, fromPlainUser, { excludeExtraneousValues: true }))
// User {
// id: undefined,
// firstName: 'Umed',
// lastName: 'Khudoiberdiev'
// }
Respuesta #1
Si creas una instancia de clase, entonces tendrás sus propiedades. Si quieres tener un objeto sin propiedades indefinidas, simplemente convierte una instancia de clase de nuevo a un objeto plano con reglas que eviten campos indefinidos. Ya no será una instancia de clase, pero será un objeto sin campos indefinidos.
Respuesta #2
agrega exposeUnsetFields a tu objeto simple de opciones. Debería ser:
plainToClass(User, fromPlainUser, { excludeExtraneousValues: true, exposeUnsetFields: false, })
