メインコンテンツへスキップ
バージョン: 11.x

FAQ / トラブルシューティング

よくある質問と、トラブルシューティングと解決方法のアイデアを集めたものです。

このページに改善点を貢献したり、ここで回答されていない質問がある場合は、GitHub で新しいディスカッションを作成してください。また、GitHub Discussions およびDiscord も確認してください。あなたの質問がここで回答されていない場合。

うまく動作しません! あらゆるところに any が表示されます

  • コードに型エラーがないことを確認してください
  • tsconfig.json"strict": true が設定されていることを確認してください
  • package.json 内の @trpc/* のバージョンが一致していることを確認してください

ミドルウェアで Context の型を変更するにはどうすればよいですか?

コンテキスト拡張をご覧ください。

tRPC は本番環境に対応していますか?

はい。tRPC は非常に安定しており、何千もの企業で使用されています。 NetflixPleo などの大企業でも、tRPC を本番環境で使用しています。

なぜ tRPC はモノレポで動作しないのですか?

これは回答が難しい質問ですが、tRPC にはビルドステップがないため、問題が tRPC 側にある可能性は低いでしょう。

確認すべき項目をいくつかご紹介します

  • プロジェクト全体で、すべての @trpc/* のバージョンが同じであることを確認してください
  • すべての tsconfig.json"strict": true が設定されていることを確認してください
  • アプリに型エラーがないことを確認してください
  • バンドルされたサーバーモノレポパッケージを使用せずに、専用のサーバーとクライアントの tsconfig.json ファイルがある場合は、クライアントが同じファイルを見つけられるように、クライアントの tsconfig.json にサーバーの tsconfig.json のように "paths": [...] があることを確認してください。

Awesome tRPC コレクションを参照して、モノレポで tRPC を使用しているオープンソースプロジェクトをいくつか見つけることもできます。

モノレポは必須ですか?

いいえ、モノレポは必須ではありませんが、クライアントとサーバーが連携することを保証することができなくなるため、モノレポを使用しないと tRPC を使用するメリットの一部が失われます。

tRPC を活用する 1 つの方法は、バックエンドリポジトリの型を含むプライベート npm パッケージを公開し、フロントエンドリポジトリでそれらを消費することです。

関連ディスカッション: https://github.com/trpc/trpc/discussions/1860

送信する入力に応じて、異なる出力を動的に返すことはできますか?

いいえ、現時点ではできません。tRPC がそれを自動的に行うためには、TypeScript でまだサポートされていない「高階型」と呼ばれるものが必要です。

関連ディスカッション: https://github.com/trpc/trpc/discussions/2150

完全なルーターにミドルウェアを適用できますか?

いいえ。代わりに 基本プロシージャを使用できます。これは、ルーターレベルでこれを行うよりも柔軟性が高くなります。

tRPC は Next.js 13 App レイアウトと RSC で動作しますか?

はい。tRPC は Next.js 13 App レイアウトと React Server Components で動作しますが、まだ公式の例は作成していません。

詳細については、この issue を読んでフォローしてください。ここでいくつかの例を紹介しています。

unstable_ とマークされた機能を使用しても安全ですか?

まとめ: はい!

tRPC で unstable_ とマークされた機能に遭遇した場合、これは API が不安定であり、マイナーバージョンアップで変更される可能性があることを意味しますが、

  • 実装の詳細はマイナーな変更で変更される可能性があります - その名前とオプションは変更される可能性があります
  • tRPC に存在する場合、それはすでに本番環境で使用されています
  • ぜひ使用してください
  • unstable_ 機能に変更が加えられた場合は、リリースノートに含まれます(&型エラーが表示されます)
  • API 設計に関する提案や問題があれば、github.com/trpc/trpc/issues または Discord#🧪-unstable-experimental-features で報告してください

experimental_ とマークされた機能を使用しても安全ですか?

tRPC で experimental_ とマークされた機能に遭遇した場合、これは API が不安定であり、tRPC のあらゆる変更で変更される可能性が非常に高いことを意味します。

  • 機能とその使用法の範囲が大きく変わる可能性があります
  • 機能が十分にテストされていない可能性があります
  • 機能を完全に削除する可能性があります
  • 最新のドキュメントを読み、ガイド付きの移行パスなしにアップグレードするのはあなた次第です
  • リリースノートに変更が十分に記載されていない可能性があります
  • バグが修正される保証はありません

ただし、皆様からの意見をお待ちしております! API 設計に関する提案や問題があれば、Discord#🧪-unstable-experimental-features で報告してください。

tRPC はセマンティックバージョニングに厳密ですか?

はい。tRPC は セマンティックバージョニングに非常に厳密であり、マイナーバージョンアップで破壊的な変更を導入することはありません。

また、JSDoc の @internal でマークされたもの以外に、エクスポートされた TypeScript type の変更もメジャー変更と見なします。

なぜ tRPC はすでにこんなに高いバージョンなのですか?

tRPC が開始され、ユーザーが非常に少なかったとき、セマンティックバージョニングに厳密でありながら、API 設計を頻繁に繰り返しました。

  • tRPC の最初の 9 つのバージョンは、プロジェクトの最初の 8 か月でリリースされました。
  • バージョン 10 は v9 から 14 か月後にリリースされましたが、API の決定に根本的な変更を加えた tRPC の真の「バージョン 2」と見なされるべきです。(2 は 2 進数で 10 ですね?)

API は現在安定しており、今後破壊的な変更があった場合は、v9 -> v10 のアップグレードで行ったように、コードモッドをリリースする予定です。


他に知りたいことはありますか?

GitHub で機能リクエストを記述するか、GitHub Discussions または Discord に書き込んでください。また、ページの下部にある「このページを編集」ボタンを使用して、このページや他のページの改善を提案することもできます。