где описываете обязательную валидацию всех полей, а потом от нее дженерик-хелперами создаете какие то вариации? Или тут есть какие то подводные камни? Мне способ понравился, пока пользуюсь, но ни где про него ни чего не видел\слышал..
                  
                  
                  
                  
                  
                  export class BaseDto {
                  
                  
                    @ApiProperty({})
                  
                  
                    @IsPositive()
                  
                  
                    @IsNumber()
                  
                  
                    readonly Id: number;
                  
                  
                  
                  
                  
                    @ApiProperty({})
                  
                  
                    @IsString()
                  
                  
                    readonly foo: string;
                  
                  
                  
                  
                  
                    @ApiProperty({})
                  
                  
                    @IsString()
                  
                  
                    readonly bar: string;
                  
                  
                  }
                  
                  
                  
                  
                  
                  export class UpdateDto extends PartialType(BaseDto) {}
                  
                  
                  
                  
                  
                  export class CreateDto extends PartialType(BaseDto) {}
                  
                  
                  
                  
                  
                  Ну или вот пример реальный
                  
                  
                  
                  
                  
                  export class CloneConsumableDto extends IntersectionType(
                  
                  
                    PickType(BaseConsumableDto, ['name', 'carId', 'categoryId', 'isUsed']),
                  
                  
                    PartialType(
                  
                  
                      OmitType(BaseConsumableDto, ['name', 'carId', 'categoryId', 'isUsed']),
                  
                  
                    ),
                  
                  
                  ) {}
                  
                  
                
Ты вроде призму используешь, а как ответ возвращаешь? Вручную в класс DTO оборачиваешь?
Главное чтобы в контроллере был указан ДТО, возвращаю из призмы интерфейсы, когда отличающиеся ДТО то делаю мапинг статик метод, User.toDto(тут указан тип интерфейса из бд)
Обсуждают сегодня