Saltar al contenido principal
Versión: 10.x

Preguntas frecuentes / Solución de problemas

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Recopilación de preguntas frecuentes con ideas para diagnosticar y resolver problemas.

Siéntete libre de contribuir a esta página con mejoras o crear una nueva discusión en GitHub si tienes una pregunta que no esté respondida aquí. También, revisa las Discusiones de GitHub y nuestro Discord si no encuentras respuesta a tu pregunta.

¡No funciona! Todo me aparece como any

  • Asegúrate de no tener errores de tipos en tu código

  • Verifica que tienes "strict": true en tu tsconfig.json

  • Confirma que las versiones de @trpc/* coinciden en tu package.json

¿Cómo hago que un middleware modifique el tipo de mi Context?

Consulta Extensión del contexto.

¿Está tRPC listo para producción?

Sí. tRPC es muy estable y lo usan miles de empresas, incluso grandes como Netflix y Pleo lo utilizan en producción.

¿Por qué no funciona tRPC en mi monorepo?

Es una pregunta difícil de responder, pero como tRPC no tiene pasos de compilación, es poco probable que el problema esté en tRPC.

Aquí hay algunas cosas para verificar:

  • Asegúrate que todas las versiones de @trpc/* sean idénticas en tu proyecto

  • Verifica que tienes "strict": true en todos tus tsconfig.json

  • Confirma que no hay errores de tipos en tu aplicación

  • Si tienes archivos tsconfig.json separados para cliente y servidor sin un paquete de servidor empaquetado, asegúrate de tener "paths": [...] en tu tsconfig.json del cliente como en tu tsconfig.json del servidor, para que el cliente pueda encontrar el mismo archivo.

También puedes revisar nuestra colección Awesome tRPC para encontrar proyectos de código abierto que usan tRPC en monorepos.

¿Es obligatorio usar un monorepo?

No, un monorepo no es obligatorio pero perderás algunos beneficios de tRPC si no lo usas, ya que no tendrás garantías de que tu cliente y servidor funcionen juntos.

Una forma de aprovechar tRPC es publicar un paquete npm privado con los tipos de tu repositorio backend y consumirlos en tu frontend.

Discusión relacionada: https://github.com/trpc/trpc/discussions/1860

¿Puedo devolver dinámicamente una salida diferente según la entrada que envíe?

No, actualmente no. Para que tRPC haga esto automáticamente, necesitaríamos "tipos de orden superior" (Higher kinded types), que aún no están soportados en TypeScript.

Discusión relacionada: https://github.com/trpc/trpc/discussions/2150

¿Puedo aplicar un middleware a un router completo?

No, pero puedes usar procedimientos base en su lugar, que ofrecen más flexibilidad que si se implementara a nivel de router.

¿Funciona tRPC con Next.js 13 App Layouts y RSC?

Sí, tRPC funciona con Next.js 13 App Layouts y React Server Components, aunque aún no hemos creado ejemplos oficiales.

Para más información, puedes leer y seguir este issue donde hemos referenciado algunos ejemplos.

¿Es seguro usar características marcadas como unstable_?

tl;dr: ¡Sí!

Si encuentras una característica en tRPC marcada como unstable_, significa que su API es inestable y podría cambiar en versiones menores, pero:

  • Los detalles de implementación podrían cambiar en versiones menores: su nombre y opciones podrían modificarse

  • Si existe en tRPC, ya se está usando en producción

  • Te recomendamos encarecidamente que la uses

  • Cualquier cambio en características unstable_ se documentará en las notas de versión (y verás errores de tipo)

  • Reporta sugerencias de diseño o problemas en github.com/trpc/trpc/issues o en #🧪-unstable-experimental-features de nuestro Discord

¿Es seguro usar características marcadas como experimental_?

Si encuentras una característica en tRPC marcada como experimental_, significa que su API es inestable y es muy probable que cambie en cualquier actualización de tRPC.

  • El alcance y uso de la característica podría cambiar significativamente

  • La característica podría no estar bien probada

  • Podríamos eliminar la característica por completo

  • Deberás leer la documentación más reciente y actualizar sin una ruta de migración guiada

  • Los cambios podrían no documentarse bien en las notas de versión

  • No se garantiza la corrección de errores

¡Agradecemos tus aportes! Reporta sugerencias de diseño o problemas en #🧪-unstable-experimental-features de nuestro Discord.

¿Sigue tRPC estrictamente semver?

Sí, tRPC sigue estrictamente el versionado semántico y nunca introduciremos cambios incompatibles en versiones menores.

Además, consideramos cambios en types TypeScript exportados como cambios mayores, excepto aquellos marcados como @internal en JSDoc.

¿Por qué tRPC ya tiene una versión tan alta?

Cuando tRPC comenzó con pocos usuarios, iterábamos frecuentemente en el diseño de la API mientras cumplíamos estrictamente con semver.

  • Las primeras 9 versiones de tRPC se lanzaron en los primeros 8 meses del proyecto.

  • La versión 10 (lanzada 14 meses después de v9) debe verse como la verdadera "versión 2" de tRPC donde hicimos cambios fundamentales en las decisiones de API. (2 is 10 in binary, amirite?)

Esperamos que la API sea estable ahora y planeamos lanzar codemods para cambios incompatibles futuros, como hicimos con la actualización v9->v10.


¿Algo más que quieras saber?

Por favor, crea una solicitud de funcionalidad en GitHub, escribe en los Debates de GitHub o en Discord. También puedes sugerir mejoras para esta página o cualquier otra usando el botón "Editar esta página" que está al final de la página.