class-transformer 排除未定义的属性

Aka*_*pta 5 typescript class-transformer

从类中排除未定义或空属性。这是实际的性质,但我需要一个可以忽略这一点的装饰者

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'
// }
Run Code Online (Sandbox Code Playgroud)

sat*_*ime 1

如果您创建一个类实例,那么您将拥有它的属性。如果您想要一个没有未定义属性的对象 - 只需使用避免未定义字段的规则将类实例转换回普通对象即可。它不再是一个类实例,但它将是一个没有未定义字段的对象。