FAQ / トラブルシューティング
よくある質問と、トラブルシューティングと解決方法のアイデアを集めたものです。
このページに改善点を貢献したり、ここで回答されていない質問がある場合は、GitHub で新しいディスカッションを作成してください。また、GitHub Discussions およびDiscord も確認してください。あなたの質問がここで回答されていない場合。
うまく動作しません! あらゆるところに any
が表示されます
- コードに型エラーがないことを確認してください
tsconfig.json
に"strict": true
が設定されていることを確認してくださいpackage.json
内の@trpc/*
のバージョンが一致していることを確認してください
ミドルウェアで Context
の型を変更するにはどうすればよいですか?
コンテキスト拡張をご覧ください。
tRPC は本番環境に対応していますか?
はい。tRPC は非常に安定しており、何千もの企業で使用されています。 Netflix や Pleo などの大企業でも、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 に書き込んでください。また、ページの下部にある「このページを編集」ボタンを使用して、このページや他のページの改善を提案することもできます。