0Pricing
TypeScript Academy · Урок

Обзор типобезопасного клиента tRPC

Посмотрите, как tRPC обеспечивает сквозную безопасность типов

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

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

tRPC обеспечивает сквозную типобезопасность TypeScript между сервером и клиентом без генерации кода.

Что такое tRPC

tRPC позволяет вызывать серверные функции с клиента с полной типобезопасностью. Без спецификации OpenAPI и генерации кода — только TypeScript.

Определение маршрутизатора сервера

Определяйте типизированные процедуры на сервере с помощью маршрутизаторов tRPC.
import { initTRPC } from '@trpc/server';
const t = initTRPC.create();
const appRouter = t.router({
  getUser: t.procedure.input(z.number()).query(({ input }) => db.getUser(input)),
});

Вывод типов

Экспортируйте тип маршрутизатора для использования на клиенте.
export type AppRouter = typeof appRouter;

Настройка клиента

Создайте типизированный клиент tRPC, используя тип маршрутизатора сервера.
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
const trpc = createTRPCProxyClient<AppRouter>({
  links: [httpBatchLink({ url: '/api/trpc' })],
});

Типизированные вызовы клиента

Вызывайте серверные процедуры с клиента с полным автодополнением.
const user = await trpc.getUser.query(1);
// user is typed as the return type of getUser

Проверка входных данных с Zod

Используйте схемы Zod в качестве проверяющих функций входных данных tRPC.
t.procedure.input(z.object({ name: z.string(), email: z.string().email() })).mutation(...)

Мутации

Определяйте мутации для операций, изменяющих данные.
const router = t.router({
  createUser: t.procedure.input(CreateUserSchema).mutation(({ input }) => db.create(input)),
});

Интеграция с React Query

tRPC интегрируется с React Query для получения данных с полным выводом типов.
const { data: user } = trpc.getUser.useQuery(1);
// data is typed automatically

Обработка ошибок в tRPC

tRPC предоставляет типизированные ошибки с помощью TRPCError.
import { TRPCError } from '@trpc/server';
if (!user) throw new TRPCError({ code: 'NOT_FOUND', message: 'User not found' });

tRPC, REST и GraphQL

tRPC идеально подходит для полноценных проектов на TypeScript. REST и GraphQL лучше подходят для публичных API или API, используемых из разных языков.

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

Как tRPC обеспечивает типобезопасность между сервером и клиентом?

Итоги

Обзор типобезопасного клиента tRPC: вы освоили основные понятия и паттерны.

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

Урок «Обзор типобезопасного клиента tRPC» бесплатный?

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

Чему я научусь в уроке «Обзор типобезопасного клиента tRPC»?

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

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

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

Сколько времени занимает урок «Обзор типобезопасного клиента tRPC»?

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

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

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

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

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