Проверяет умение валидировать типы данных, приходящих с сервера, и обрабатывать несоответствия без падения приложения.
TypeScript проверяет типы только на этапе компиляции. Когда данные приходят с сервера, они попадают в приложение как обычные значения JavaScript, и компилятор уже не может гарантировать, что там действительно число, а не строка. Поэтому проверку нужно делать вручную во время выполнения.
Самый простой способ — проверить тип конкретного поля перед использованием:
function parseUser(data) {
if (typeof data.age !== 'number') {
throw new Error('age must be a number');
}
return { name: data.name, age: data.age };
}
try {
const user = parseUser(await res.json());
console.log(user.age + 1);
} catch (e) {
console.error('Bad response:', e.message);
}Когда полей много, ручные проверки становятся громоздкими. Библиотеки вроде Zod описывают схему и сами проверяют все поля, возвращая типизированный результат:
import { z } from 'zod';
const UserSchema = z.object({
name: z.string(),
age: z.number(),
});
const result = UserSchema.safeParse(await res.json());
if (!result.success) {
console.error(result.error.issues);
} else {
console.log(result.data.age); // number
}Итог: валидация ответов сервера защищает приложение от неожиданных данных и делает ошибки предсказуемыми. Применяйте её на границе с внешним API, особенно если контракт может меняться.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию