Интерфейс DTO и схема валидации разошлись, и поле проверяется не так, как типизировано
Для создания заказа есть интерфейс CreateOrderDto и отдельно написанная схема валидации Zod. Полгода назад в интерфейсе поле comment сделали необязательным, а в схеме забыли. Клиенты, не передающие комментарий, получают 400, хотя по типам всё корректно.
Как устранить класс таких ошибок?
- Выводить тип из схемы: один источник правды
- Писать тест на каждое поле интерфейса
- Отказаться от схемы и полагаться на интерфейс
- Сравнивать интерфейс и схему на ревью
