Проверяет умение проектировать типизацию REST API и работать со связанными эндпоинтами в TypeScript.
При работе с REST API важно заранее определить типы данных, которые возвращает сервер. В TypeScript для этого используются интерфейсы и типы. Например, для сущности пользователя можно создать интерфейс User, а для ответа — интерфейс ApiResponse, который содержит поле data.
interface User {
id: number;
name: string;
email: string;
}
interface ApiResponse<T> {
data: T;
status: number;
}Когда есть несколько связанных эндпоинтов, например, список пользователей и получение пользователя по ID, удобно использовать обобщённые типы. Это позволяет переиспользовать общую структуру ответа и избегать дублирования кода.
interface ListResponse<T> {
items: T[];
total: number;
}
async function fetchUsers(): Promise<ListResponse<User>> {
const res = await fetch('/api/users');
return res.json();
}
async function fetchUser(id: number): Promise<ApiResponse<User>> {
const res = await fetch(`/api/users/${id}`);
return res.json();
}Такая типизация помогает на этапе разработки: IDE подсказывает поля, а компилятор ловит ошибки до выполнения. Это особенно полезно в больших проектах, где API меняется часто. Также можно использовать библиотеки, например, axios с дженериками, чтобы автоматически типизировать ответы.
Типизация REST API через обобщённые интерфейсы делает код надёжнее и читабельнее. Применяйте её в любом проекте на TypeScript, где есть взаимодействие с сервером, чтобы снизить количество ошибок и ускорить разработку.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
TypeScript
SQL
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию