tRPC #

什么是 tRPC? #

tRPC 是一个用于构建端到端类型安全 API 的框架,它允许你在没有 schema 定义的情况下,直接从 TypeScript 类型推导出 API 类型。通过 tRPC,你可以在前端直接调用后端函数,同时享受完整的类型安全和自动补全。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                         tRPC                                 │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  类型安全    │  │  零 Schema   │  │  自动补全   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  轻量级      │  │  框架无关    │  │  开发体验   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

为什么选择 tRPC? #

优势 #

text
✅ 端到端类型安全
   - 前后端共享类型
   - 编译时错误检查
   - 重构安全

✅ 零 Schema 定义
   - 无需 GraphQL Schema
   - 无需 OpenAPI 定义
   - TypeScript 即 Schema

✅ 极佳开发体验
   - 完整自动补全
   - 即时类型提示
   - 无缝调试

✅ 轻量高效
   - 无代码生成
   - 最小运行时
   - 高性能

快速开始 #

安装 #

bash
npm install @trpc/server @trpc/client

服务端定义 #

typescript
import { initTRPC } from '@trpc/server';

const t = initTRPC.create();

const router = t.router;
const publicProcedure = t.procedure;

const appRouter = router({
  greeting: publicProcedure
    .input((name: string) => name)
    .query(({ input }) => `Hello, ${input}!`),
});

export type AppRouter = typeof appRouter;

客户端调用 #

typescript
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
import type { AppRouter } from './server';

const client = createTRPCProxyClient<AppRouter>({
  links: [
    httpBatchLink({
      url: 'http://localhost:3000/trpc',
    }),
  ],
});

const result = await client.greeting.query('World');
console.log(result); // "Hello, World!"

文档结构 #

text
tRPC 文档
├── 入门基础
│   ├── tRPC 简介
│   ├── 快速开始
│   └── 路由器与过程
│
├── 核心功能
│   ├── 客户端使用
│   ├── 类型系统
│   ├── 中间件
│   └── 错误处理
│
└── 高级特性
    ├── 订阅模式
    ├── 集成框架
    └── 生产部署

tRPC vs GraphQL #

特性 tRPC GraphQL
Schema 无需 需要
类型安全 自动 需代码生成
学习曲线
生态 TypeScript 多语言
性能

学习路径 #

text
入门阶段
├── tRPC 简介
├── 快速开始
└── 路由器与过程

进阶阶段
├── 客户端使用
├── 类型系统
├── 中间件
└── 错误处理

高级阶段
├── 高级特性
├── 集成 Next.js
└── 生产部署

下一步 #

现在你已经了解了 tRPC 的基本概念,接下来学习 tRPC 简介,开始构建类型安全的全栈应用!

最后更新:2026-03-29