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'
// }
2 ответа
добавьте exposeUnsetFields к вашему обычному объекту опций. Должно быть:
plainToClass(User, fromPlainUser, { excludeExtraneousValues: true, exposeUnsetFields: false, })
Если вы создадите экземпляр класса, у вас будут его свойства. Если вы хотите иметь объект без неопределенных свойств - просто преобразуйте экземпляр класса обратно в простой объект с правилами, которые избегают неопределенных полей. Это больше не будет экземпляром класса, но это будет объект без неопределенных полей.