【ティーアールピーシー】
tRPC とは?
💡 型がサーバーからクライアントまで一気通貫!スキーマ不要のAPI革命
📌 このページのポイント
ダメじゃないけど、TypeScriptのプロジェクトだと型の二重管理が面倒なんだ。REST APIだとサーバーとクライアントで別々に型定義が必要だし、GraphQLもスキーマ定義とコード生成のステップがいるんだよ
tRPCだとそれがいらないってこと?
そうなんだ。サーバー側でTypeScriptの関数を定義するだけで、クライアント側からその関数を呼ぶときに自動で型補完が効くよ。まるでサーバーの関数を直接呼んでいるような感覚で開発できるんだ
どういう仕組みで型が共有されるの?
TypeScriptの型推論をそのまま活用しているんだ。サーバーとクライアントが同じTypeScriptプロジェクト(モノレポ)にあれば、importするだけで型情報が伝わる。実行時にはJSONでHTTP通信しているよ
じゃあTypeScript以外の言語では使えないの?
その通り、TypeScript専用なんだ。だからモバイルアプリや他言語のクライアントがある場合はRESTやGraphQLの方が向いているね。逆に言えば、TypeScriptで統一されたプロジェクトでは最強の選択肢だよ
実際にどんなプロジェクトで使われているの?
Next.jsと組み合わせたフルスタック開発でよく使われているよ。T3 Stackという有名な構成では、Next.js・tRPC・Prisma・Tailwind CSSをセットで使うのが定番になっているんだ。型安全が開発体験を劇的に変えてくれるよ
まとめ:ざっくりこれだけ覚えればOK!
📖 おまけ:英語の意味
「TypeScript Remote Procedure Call」 = TypeScriptの遠隔手続き呼び出し
💬 RPCは「離れた場所にある関数を呼び出す」という意味で、TypeScriptに特化しているからtRPCなんだよ