дто для v2 наследуясь от дто версии v1, поскольку в новой версии расширяем кол-во полей, которое приходит на ендпоинт.
у меня есть поле которое в v1 тип number, а в версии v2 это поле это объект, который я описал дто
тайпскрипт ругнулся, мол тип намбер и описанное в чилде поле объекта типа дто - не совместимо, я в родительском классе добавил операто или
public field: number | describedDto;
это решило проблему.
но над полем есть декоратор class-validator @IsNumber(), который валидирует поле
как правильно решить это проблему? можно описать отдельными классами, но если пейлоад v2 - это v1 + 2 поля, не хочу повторять код.
мб кто подкинет идею по решению этой проблемы?
```export default class v1Dto {
......
@IsNumber()
public field: number | describedDto;
.......
}
```
чилдовский класс
```
export default class V2Dto extends V1Dto {
@ValidateNested()
@Type(() => describedDto)
public field: describedDto;
}
```
Наследоваться от DTO для разных версий - плохо. Лучше скопируй поля и вставь в новое DTO
Обсуждают сегодня