используешь другой дто, то его декораторы не работают
пример
export class WorkScheduleDto {
@ApiProperty()
@IsNotEmpty()
@IsEnum(DaysOfTheWeek)
dayOfWeek: DaysOfTheWeek;
@ApiProperty()
@IsOptional()
@IsString()
@Is12HourTimeFormat()
startTime?: string;
@ApiProperty()
@IsOptional()
@IsString()
@Is12HourTimeFormat()
endTime?: string;
}
export class RestaurantCreateRequestDto implements IRestaurantCreateParams {
@ApiProperty()
@Transform(({ value }) => toNumber(value))
@IsNotEmpty()
@IsNumber()
userId: number;
@ApiProperty()
@IsNotEmpty()
@IsString()
name: string;
@ApiProperty()
@IsNotEmpty()
@IsString()
legalName: string;
@ApiProperty()
@IsNotEmpty()
@IsString()
address: string;
@ApiProperty()
@IsOptional()
@Type(() => WorkScheduleDto)
@Transform(({ value }) => value.map((el) => JSON.parse(el)))
workSchedule: WorkScheduleDto[];
здесь декораторы WorkScheduleDto( для startTime, endTime, dayOfWeek) просто не отрабатывают
Попробуй добавить декоратор @ValidateNested({ each: true })
ругается на что то TypeError: Cannot convert undefined or null to object
Попробуй еще добавить @ValidateIf((o) => !!o.workSchedule)
И transform удали если к тебе массив объектов приходит
без трансформа приходит так
тоже не получилось
Подебаж мне кажется у тебя ошибка в transform он пытается с пустым значение что то сделать Вот мой код который работает @IsOptional() @Type(() => UnblockAmountDto) @ValidateNested({ each: true }) @ApiProperty({ isArray: true, required: false, type: UnblockAmountDto, description: 'Unblock amount', }) unblockAmount?: UnblockAmountDto[];
спасибо💛 попробую
Обсуждают сегодня