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

よくある質問 / トラブルシューティング

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

よく寄せられる質問と、それらのトラブルシューティング・解決方法をまとめました。

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

動かない! すべてany型になってしまう

  • コードに型エラーがないことを確認してください

  • tsconfig.json"strict": trueが設定されていることを確認してください

  • package.json内の@trpc/*バージョンが一致していることを確認してください

  • tRPCが要求するTypeScriptバージョン(>=5.7.2)を使用していることを確認してください

  • エディタがpackage.jsonと同じTypeScriptバージョンを使用していることを確認してください

VSCode設定

エディタがpackage.jsonと同じTypeScriptバージョンを使用するように、プロジェクトルートの.vscode/settings.jsonに以下の設定を追加してください:

.vscode/settings.json
json
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
.vscode/settings.json
json
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}

チームメンバー全員が同じ環境になるよう、このファイルをリポジトリにコミットすることを強く推奨します。

ミドルウェアでContextの型を変更するには?

Contextの拡張を参照してください。

tRPCはプロダクション環境で使えますか?

はい。tRPCは非常に安定しており、NetflixPleoといった大企業を含む数千社がプロダクション環境で使用しています。

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

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

確認すべきポイント:

  • プロジェクト全体で全ての@trpc/*パッケージのバージョンが統一されていることを確認してください

  • 全てのtsconfig.json"strict": trueが設定されていることを確認してください

  • アプリケーションに型エラーがないことを確認してください

  • サーバーとクライアントで別々のtsconfig.jsonファイルを使用し、サーバーモノレポパッケージをバンドルしていない場合、クライアントのtsconfig.jsonにサーバーのtsconfig.jsonと同じ"paths": [...]設定があることを確認し、クライアントが同じファイルを見つけられるようにしてください。

モノレポでtRPCを使用しているオープンソースプロジェクトの例は、Awesome tRPCコレクションで参照できます。

モノレポは必須ですか?

必須ではありませんが、モノレポを使用しない場合、クライアントとサーバーが連携して動作する保証が失われるため、tRPCを使用する利点の一部が損なわれます。

代替方法として、バックエンドリポジトリの型定義をプライベートnpmパッケージとして公開し、フロントエンドリポジトリで消費する方法があります。

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

入力内容に応じて動的に異なる出力を返せますか?

現時点ではできません。tRPCでこれを自動化するには「高階型(Higher kinded types)」が必要ですが、これはTypeScriptでまだサポートされていません。

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

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

いいえ、代わりにベースプロシージャを使用できます。これはルーター単位で適用する場合よりも柔軟性を提供します。

tRPCはNext.js 13のApp LayoutとRSCと連携しますか?

はい、tRPCはNext.js 13のApp LayoutとReact Server Components(RSC)と連携しますが、現時点では公式サンプルは提供していません。

詳細については、いくつかの実装例を参照しているこちらのissueをご覧ください。

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

要約: はい!

tRPCでunstable_とマークされた機能はAPIが不安定で、マイナーバージョン更新時に変更される可能性があることを意味しますが:

  • 実装の詳細はマイナー更新で変更される可能性があります(名前やオプションが変わる場合があります)

  • 機能がtRPCに存在する時点で、すでにプロダクション環境で使用されています

  • 積極的な使用を推奨しています

  • unstable_機能への変更はリリースノートに記載され(型エラーとして可視化されます)

  • API設計に関する提案や問題はgithub.com/trpc/trpc/issuesまたはDiscord#🧪-unstable-experimental-featuresチャンネルでお知らせください

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

experimental_とマークされた機能はAPIが不安定で、tRPCのバージョンアップ時に変更される可能性が非常に高いことを意味します:

  • 機能の広範な部分や使用方法が変更される可能性があります

  • 十分なテストが行われていない可能性があります

  • 機能が完全に削除される可能性があります

  • 最新ドキュメントの確認とガイドなしのアップグレードは自己責任です

  • 変更内容がリリースノートに十分記載されない可能性があります

  • バグ修正の保証はありません

ただし皆様のご意見は歓迎します!API設計に関する提案や問題はDiscord#🧪-unstable-experimental-featuresチャンネルでお知らせください。

tRPCはセマンティックバージョニングを厳守していますか?

はい、tRPCはセマンティックバージョニングを厳守しており、マイナーバージョン更新で破壊的変更を導入することはありません。

JSDocで@internalとマークされたものを除き、exportされたTypeScriptのtype変更もメジャー変更とみなします。

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

tRPCは初期段階でユーザーが少なかったため、セマンティックバージョニングを厳守しつつAPI設計を頻繁に更新していました。

  • 最初の9バージョンはプロジェクト開始後8ヶ月以内にリリースされました

  • v9の14ヶ月後にリリースしたVersion 10はAPI設計を根本的に変更した実質的な「バージョン2」です (2 is 10 in binary, amirite?)

現在APIは安定していると見込んでおり、v9→v10アップグレード時と同様、将来の破壊的変更にはコードモドを提供する予定です。


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

機能リクエストは GitHub に、質問や議論は GitHub Discussions または Discord に投稿してください。また、このページや他のページの改善点は、ページ下部の「Edit this page」ボタンから自由に提案することができます。