0Pricing
TypeScript Academy · Урок

Проверка во время выполнения с Zod

Проверяйте и выводите типы ответов API по схемам Zod

«Проверка во время выполнения с Zod» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Добро пожаловать

Zod — библиотека проверки схем, ориентированная прежде всего на TypeScript. Она выводит типы из схем и предоставляет проверку во время выполнения и типы на этапе компиляции.

Установка Zod

Установите Zod в свой проект.
npm install zod

Базовая схема

Определите схему и выведите её тип TypeScript.
import { z } from 'zod';
const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
  email: z.string().email(),
});
type User = z.infer<typeof UserSchema>;

Разбор данных

Используйте schema.parse() для проверки. При ошибке функция выбрасывает исключение.
const user = UserSchema.parse({ id: 1, name: 'Alice', email: 'a@b.com' });
// user is typed as User

Безопасный разбор

Используйте safeParse(), чтобы получать ошибки как значения, а не выбрасывать их.
const result = UserSchema.safeParse(unknownData);
if (result.success) {
  console.log(result.data); // User
} else {
  console.log(result.error.issues);
}

Схемы массивов и объектов

Составляйте сложные схемы с помощью z.array и z.object.
const UsersSchema = z.array(UserSchema);
const CreateUserSchema = UserSchema.omit({ id: true });

optional и nullable

Помечайте поля как optional или nullable.
const Schema = z.object({
  name: z.string(),
  bio: z.string().optional(),   // string | undefined
  avatar: z.string().nullable(), // string | null
});

Перечисления и объединения

Проверяйте значения перечислений и типы объединений.
const StatusSchema = z.enum(['active', 'inactive', 'banned']);
const InputSchema = z.string().or(z.number());

Преобразование

Преобразуйте разобранные значения.
const PriceSchema = z.string().transform(s => parseFloat(s));

Zod в маршрутах API

Проверяйте тела запросов в маршрутах API Express и Next.js.
app.post('/users', async (req, res) => {
  const result = CreateUserSchema.safeParse(req.body);
  if (!result.success) return res.status(400).json(result.error);
  const user = await db.create(result.data); // typed!
  res.json(user);
});

Пользовательские проверяющие функции

Добавляйте пользовательские уточнения к схемам.
const PasswordSchema = z.string().min(8).refine(
  s => /[A-Z]/.test(s), { message: 'Need uppercase' }
);

Быстрая проверка

Какой метод предоставляет Zod для проверки данных без выбрасывания исключения при ошибке?

Итоги

Проверка во время выполнения с Zod: вы освоили основные понятия и паттерны.

Часто задаваемые вопросы

Урок «Проверка во время выполнения с Zod» бесплатный?

Да — полный текст урока «Проверка во время выполнения с Zod» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Проверка во время выполнения с Zod»?

Проверяйте и выводите типы ответов API по схемам Zod Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Проверка во время выполнения с Zod»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Типизация ответов Fetch с обобщёнными обёртками
  2. Проверка во время выполнения с Zod
  3. Генерация кода OpenAPI: автоматически создаваемые типы
  4. Обзор типобезопасного клиента tRPC
← Назад к TypeScript Academy