Фронтенд приложения TRC был полностью обновлен для соответствия новой OpenAPI спецификации v0.1.0. Все изменения направлены на улучшение типизации, исправление ошибок компиляции и приведение кода к единому стилю.
Проблемы:
- Дублирование интерфейса
OutfitOutс конфликтующими типами - Несоответствие типов
owner_id(string vs number) - Отсутствие новых типов для корзины
Исправления:
- Удален дублирующий интерфейс
OutfitOut - Добавлены новые типы для корзины:
CartItemResponse,CartSummary,CartResponse - Добавлены типы для образов:
OutfitItemCreate,OutfitCreate,OutfitUpdate - Исправлены конфликты типов
Проблемы:
- Неправильное использование
export typeсинтаксиса - Отсутствие типа
CartItemResponse
Исправления:
- Переписан на использование
import typeс re-export - Добавлен псевдоним
CartItem = CartItemResponseдля совместимости - Исправлен тип
CartItemWithActions
Проблемы:
- Отсутствие проверок на
undefinedдля опциональных полей - Неправильные типы свойств
Исправления:
- Добавлены проверки
?? falseи?? trueдля булевых полей - Добавлены проверки
?? 0для числовых полей - Исправлены все обращения к свойствам объекта
Проблемы:
- Ошибки смешивания операторов
&&и?? - Отсутствие проверок на
undefined
Исправления:
- Добавлены скобки для правильного порядка операций:
((item.is_reserved ?? false) && ...) - Добавлены проверки на
undefinedдля всех опциональных полей - Исправлены типы функций
Проблемы:
- Отсутствие проверок на
undefinedдляsummary.total
Исправления:
- Добавлены проверки
?? 0для всех числовых полей - Исправлены условия проверки
frontend/src/components/Main/Cart.tsx:
- Исправлены проверки
cart.summary.items_count
frontend/src/features/cart/CartDrawer.tsx:
- Исправлены проверки
cart.summary.items_count
frontend/src/components/Main/Items/ItemDetail.tsx:
- Исправлены проверки
c.likes ?? 0
frontend/src/components/Main/Outfits/OutfitDetail.tsx:
- Исправлены проверки
c.likes ?? 0
Проблемы:
- Неправильные типы для
favorite_colorsиfavorite_brands(string vs string[])
Исправления:
- Изменены типы на массивы
string[] - Упрощена обработка данных профиля
frontend/src/components/Admin/UserForm.tsx:
- Исправлены импорты:
createUser→createUserAdmin,updateUser→updateUserAdmin
frontend/src/components/Admin/OutfitForm.tsx:
- Полностью переписан для работы с новой структурой
OutfitCreate - Заменены отдельные массивы ID на единый массив
items - Добавлены новые поля:
tags,season,occasion,outfit_type - Заменены компоненты Select на обычные HTML select элементы
Проблемы:
- Обращение к несуществующим свойствам
tops,bottoms,footwear,accessories
Исправления:
- Заменено на
Object.values(data.items).flat()[0]для получения первого элемента
frontend/src/api/users.ts:
- Добавлены методы для управления пользователями и их контентом
frontend/src/api/profile.ts:
- Создан новый файл для работы с профилем
frontend/src/api/auth.ts:
- Добавлен метод обновления токенов
✅ Все ошибки TypeScript исправлены ✅ Сборка проходит успешно ✅ Код приведен к единому стилю ✅ Добавлены необходимые проверки на undefined ✅ Обновлена структура данных в соответствие с новой API
# Проверка типов
cd frontend && npm run build
# Запуск в режиме разработки
cd frontend && npm run dev- Все изменения обратно совместимы
- Добавлены проверки на undefined для повышения надежности
- Код стал более типизированным и безопасным
- Структура данных приведена в соответствие с OpenAPI спецификацией