typescript - class-transformer Exclude proprietăți nedefinite
Excludeți proprietățile nedefinite sau null din clasă. aceasta este natura reală, dar am nevoie de un decorator care să poată ignora acest lucru
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'
// }
Răspuns #1
Dacă creezi o instanță de clasă, atunci vei avea proprietățile ei. Dacă vrei să ai un obiect fără proprietăți nedefinite - pur și simplu convertește o instanță de clasă înapoi într-un obiect simplu cu reguli care evită câmpurile nedefinite. Nu va mai fi o instanță de clasă, dar va fi un obiect fără câmpuri nedefinite.
Răspunsul #2
adaugă exposeUnsetFields la obiectul tău simplu de opțiuni. Ar trebui să fie:
plainToClass(User, fromPlainUser, { excludeExtraneousValues: true, exposeUnsetFields: false, })
