User
Ваш велосипед очень громоздкий, откройте документацию там есть примеры, DTO - суть в его названии.Понятно что дублирование полей не айс, но всё уже придуманно до нас:
export class DeleteLicDto extends OmitType(LicDto, ['code', 'expireDate']) { @Expose() @ApiProperty({ default: 1, required: false }) @IsNumber() @IsOptional() @NotEquals(0) @Type(() => Number) code?: number; }
Можно и с дженериками, конечно, нечто подобное хотел увидеть в статье..
export abstract class ConstructableDto< T = ConstructableDto<Record<string, unknown>>, > { constructor(dto?: Partial<T>) { if (dto) { Object.assign(this, dto); } } } export class SuccessDto extends ConstructableDto<SuccessDto> { @Expose() @ApiProperty({ type: Boolean, description: 'Is success execute request', example: true, }) success: boolean; } export class ListResponseDto< T = Record<string, unknown>, > extends ConstructableDto<ListResponseDto<T>> { @ApiProperty({ description: 'Selected data' }) data!: T[]; @ApiProperty({ description: 'Total numbers of entries' }) count!: number; }
Но в вашем случае это:https://docs.nestjs.com/techniques/validation
Ваш велосипед очень громоздкий, откройте документацию там есть примеры, DTO - суть в его названии.
Понятно что дублирование полей не айс, но всё уже придуманно до нас:
Можно и с дженериками, конечно, нечто подобное хотел увидеть в статье..
Но в вашем случае это:
https://docs.nestjs.com/techniques/validation