Aller au contenu principal
Version : 11.x

FAQ / Dépannage

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Collection de questions fréquemment posées avec des pistes pour diagnostiquer et résoudre les problèmes.

N'hésitez pas à contribuer à cette page ou à créer une discussion sur GitHub si votre question n'y figure pas. Consultez également les discussions GitHub et notre Discord pour trouver des réponses supplémentaires.

Ça ne fonctionne pas ! Je vois any partout

  • Vérifiez qu'il n'y a pas d'erreurs de type dans votre code

  • Assurez-vous d'avoir "strict": true dans votre tsconfig.json

  • Contrôlez que les versions @trpc/* correspondent dans votre package.json

  • Vérifiez que vous utilisez la version de TypeScript requise par tRPC (>=5.7.2)

  • Confirmez que votre éditeur utilise la même version de TypeScript que votre package.json

Paramètres VSCode

Ajoutez ces paramètres à votre .vscode/settings.json à la racine du projet pour garantir que votre éditeur utilise la même version de TypeScript que votre package.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
}

Nous recommandons fortement de versionner ce fichier dans votre dépôt pour que vos collègues bénéficient de la même configuration.

Comment modifier le type de mon Context via un middleware ?

Voir Extension du contexte.

tRPC est-il prêt pour la production ?

Oui. tRPC est très stable et utilisé par des milliers d'entreprises, y compris des grands noms comme Netflix et Pleo qui l'utilisent en production.

Pourquoi tRPC ne fonctionne pas dans mon monorepo ?

C'est une question complexe, mais comme tRPC n'a pas d'étape de build spécifique, le problème vient rarement de tRPC lui-même.

Voici quelques points à vérifier :

  • Assurez-vous que toutes les versions @trpc/* sont identiques dans tous vos projets

  • Vérifiez que "strict": true est présent dans tous vos tsconfig.json

  • Contrôlez qu'il n'y a pas d'erreurs de type dans votre application

  • Si vous avez des fichiers tsconfig.json dédiés séparés pour le serveur et le client sans package monorepo regroupé, assurez-vous d'avoir "paths": [...] dans votre tsconfig.json client comme dans votre tsconfig.json serveur, afin que le client puisse trouver les mêmes fichiers.

Consultez également notre collection Awesome tRPC pour découvrir des projets open-source utilisant tRPC dans un monorepo.

Un monorepo est-il obligatoire ?

Non, un monorepo n'est pas obligatoire mais vous perdrez certains avantages de tRPC sans cela, car vous n'aurez plus la garantie que votre client et serveur fonctionnent ensemble.

Une alternative consiste à publier un package npm privé contenant les types de votre backend et à les consommer dans votre projet frontend.

Discussion associée : https://github.com/trpc/trpc/discussions/1860

Puis-je retourner dynamiquement un résultat différent selon l'entrée envoyée ?

Non, pas actuellement. Pour qu'tRPC le fasse automatiquement, nous aurions besoin des "types de kind supérieur" qui ne sont pas encore supportés dans TypeScript.

Discussion associée : https://github.com/trpc/trpc/discussions/2150

Puis-je appliquer un middleware à un routeur entier ?

Non, mais vous pouvez utiliser des procédures de base réutilisables qui offrent plus de flexibilité qu'une approche par routeur.

tRPC fonctionne-t-il avec les App Layouts et RSC de Next.js 13 ?

Oui, tRPC est compatible avec les App Layouts de Next.js 13 et les React Server Components, bien que nous n'ayons pas encore créé d'exemples officiels.

Pour plus d'informations, suivez cette issue GitHub où nous référençons plusieurs exemples.

Puis-je utiliser les fonctionnalités marquées unstable_ en toute sécurité ?

En bref : Oui !

Une fonctionnalité marquée unstable_ signifie que son API peut changer dans des versions mineures, mais :

  • Les détails d'implémentation pourraient évoluer (nom, options)

  • Elle est déjà utilisée en production

  • Nous vous encourageons vivement à l'utiliser

  • Toute modification apportée à la fonctionnalité unstable_ sera documentée dans les notes de version (et générera des erreurs de type)

  • Signalez vos suggestions sur GitHub ou dans le canal #🧪-unstable-experimental-features de notre Discord

Puis-je utiliser les fonctionnalités marquées experimental_ ?

Les fonctionnalités experimental_ sont très instables et peuvent changer dans n'importe quelle version de tRPC :

  • Leur comportement et usage pourraient être modifiés

  • Elles pourraient être insuffisamment testées

  • Nous pourrions les abandonner complètement

  • À vous de suivre la documentation pour les mises à jour (sans guide de migration)

  • Les changements pourraient être mal documentés

  • Les bugs ne sont pas garantis d'être corrigés

Nous apprécions vos retours ! Signalez vos suggestions dans le canal #🧪-unstable-experimental-features de notre Discord.

tRPC respecte-t-il strictement le semver ?

Oui, tRPC applique strictement le versioning sémantique et n'introduira jamais de breaking change dans une version mineure.

Nous considérons aussi les modifications des type TypeScript exportés comme des changements majeurs (sauf ceux marqués @internal en JSDoc).

Pourquoi tRPC a-t-il déjà un numéro de version si élevé ?

Les premières versions de tRPC ont beaucoup itéré sur la conception d'API tout en respectant le semver avec peu d'utilisateurs.

  • Les 9 premières versions ont été publiées en 8 mois.

  • La version 10 (sortie 14 mois après v9) représente la vraie "v2" avec des changements fondamentaux. (2 is 10 in binary, amirite?)

L'API est désormais stable. Nous prévoyons des codemods pour les futurs breaking changes, comme pour la migration v9→v10.


Autres questions ?

Veuillez soumettre vos suggestions de fonctionnalités sur GitHub, participer aux discussions GitHub ou nous contacter sur Discord. Vous pouvez également suggérer des améliorations pour cette page ou toute autre page via le bouton "Modifier cette page" en bas de la page.