Búsqueda de sitios web

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, })

Artículos relacionados