تایپاسکریپت - سریالسازی اشیاء تو در تو با استفاده از class-transformer : Nest js
من در حال تلاش برای سریالسازی اشیاء تو در تو با استفاده از یک مبدل کلاس هستم. من دو DTO مانند زیر دارم. وقتی که تلاش میکنم با استفاده از plainToClass سریالسازی کنم، شیء تو در تو از خروجی حذف میشود و فقط دادههای شیء والد را دریافت میکنم.
شیء انتقال داده کاربر:
export class UserDto extends AbstractDto {
@Expose()
email: string;
@Expose()
first_name: string;
@Expose()
last_name: string;
@Expose()
profile: ProfileDto
}
مشخصات dto:
export class ProfileDto extends AbstractDto {
@Expose()
date_of_birth: string;
@Expose()
address: string;
@Expose()
pincode: string;
}
سریالساز:
const serialized = plainToClass(UserDto, user, {
excludeExtraneousValues: true,
});
خروجی مورد انتظار:
{
email:'[email ',
first_name: 'test',
last_name: 'test',
profile: {
date_of_birth: '',
address: '',
pincode: ''
}
}
پاسخ شماره ۱
من پاسخ را اینجا پیدا کردهام Link. اگر من enableImplicitConversion: true را همراه با دکوراتور @Type اضافه کنم، سپس همانطور که انتظار میرود، کار میکند.
export class UserDto extends AbstractDto {
@Expose()
email: string;
@Expose()
first_name: string;
@Expose()
last_name: string;
@Expose()
@Type(() => ProfileDto)
profile: ProfileDto
}
سریالایزر:
const serialized = plainToClass(UserDto, user, {
excludeExtraneousValues: true,
enableImplicitConversion: true
});
