Vanliga frågor och felsökning
Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →
Samling av vanliga frågor med idéer om hur du felsöker och löser dem.
Du är välkommen att bidra till den här sidan med förbättringar eller skapa en ny diskussion på GitHub om du har en fråga som inte besvarats här. Titta också igenom GitHub-diskussionerna och vår Discord om din fråga inte besvarats här.
Det fungerar inte! Jag får any överallt
-
Se till att du inte har några typfel i din kod
-
Se till att du har
"strict": truei dintsconfig.json -
Se till att dina
@trpc/*-versioner matchar i dinpackage.json -
Se till att du använder den TypeScript-version som krävs av tRPC (
>=5.7.2) -
Se till att din editor använder samma TypeScript-version som din
package.json
VSCode-inställningar
Lägg till dessa inställningar i din .vscode/settings.json i projektroten för att säkerställa att din editor använder samma TypeScript-version som din package.json:
.vscode/settings.jsonjson{"typescript.tsdk": "node_modules/typescript/lib","typescript.enablePromptUseWorkspaceTsdk": true}
.vscode/settings.jsonjson{"typescript.tsdk": "node_modules/typescript/lib","typescript.enablePromptUseWorkspaceTsdk": true}
Vi rekommenderar starkt att du committar den här filen till ditt repo så dina kollegor får samma upplevelse.
Hur får jag en middleware att ändra typen på min Context?
Se Kontextutökning.
Är tRPC redo för produktion?
Ja. tRPC är mycket stabilt och används av tusentals företag, även stora som Netflix och Pleo använder tRPC i produktion.
Varför fungerar inte tRPC i mitt monorepo?
Det är en svår fråga att besvara, men eftersom tRPC inte har något byggsteg är det osannolikt att problemet ligger på tRPC:s sida.
Här är några saker att kontrollera:
-
Se till att du har samma version av alla
@trpc/*i alla dina projekt -
Se till att du har
"strict": truei alla dinatsconfig.json-filer -
Se till att du inte har några typfel i din applikation
-
Om du har separata
tsconfig.json-filer för server och klient utan ett paketbundet server-monorepo, se till att du har"paths": [...]i din klient-tsconfig.jsonpå samma sätt som i din server-tsconfig.json, så att klienten kan hitta samma fil.
Du kan också titta på vår Awesome tRPC-samling för att hitta flera projekt med öppen källkod som använder tRPC i monorepos.
Är ett monorepo obligatoriskt?
Nej, ett monorepo är inte obligatoriskt men du kommer att förlora vissa fördelar med tRPC om du inte använder det, eftersom du förlorar garantierna att klient och server fungerar tillsammans.
Ett sätt att använda tRPC är att publicera ett privat npm-paket med typerna från din backend-repo och använda dem i din frontend-repo.
Relaterad diskussion: https://github.com/trpc/trpc/discussions/1860
Kan jag dynamiskt returnera annan utdata beroende på vilken indata jag skickar?
Nej, inte för närvarande. För att tRPC automatiskt ska kunna göra detta behöver vi något som kallas "Higher kinded types", vilket ännu inte stöds i TypeScript.
Relaterad diskussion: https://github.com/trpc/trpc/discussions/2150
Kan jag applicera en middleware på en hel router?
Nej, men du kan använda basprocedurer istället, vilket ger mer flexibilitet jämfört med att göra det på routernivå.
Fungerar tRPC med Next.js App Router & RSC?
Ja, tRPC fungerar med Next.js App Router & React Server Components. Se guiden för att sätta upp Next.js App Router för den rekommenderade metoden.
Är det säkert att använda funktioner markerade som unstable_?
tl;dr: Ja!
Om du stöter på en funktion i tRPC markerad som unstable_ betyder det att API:t är instabilt och kan ändras i minor versioner, men:
-
Implementationsdetaljer kan ändras i mindre uppdateringar - dess namn och alternativ kan förändras
-
Om den finns i tRPC används den redan i produktion
-
Vi uppmuntrar dig starkt att använda den
-
Eventuella ändringar av
unstable_-funktioner dokumenteras i release notes (& du kommer se typerrors) -
Rapportera förslag på API-design eller problem på github.com/trpc/trpc/issues eller i
#🧪-unstable-experimental-featurespå vår Discord
Är det säkert att använda funktioner markerade som experimental_?
Om du stöter på en funktion i tRPC markerad som experimental_ betyder det att API:t är instabilt och med hög sannolikhet kommer ändras vid varje uppdatering av tRPC.
-
Funktionens omfattning och användningsområden kan förändras drastiskt
-
Funktionen kanske inte är väl testad
-
Vi kan komma att slopa funktionen helt
-
Det är ditt ansvar att läsa senaste dokumentationen och uppgradera utan vägledande migreringsstöd
-
Ändringar kanske inte dokumenteras ordentligt i release notes
-
Buggar garanteras inte att åtgärdas
Vi uppskattar dock feedback! Rapportera förslag på API-design eller problem i #🧪-unstable-experimental-features på vår Discord.
Följer tRPC strikt semver?
Ja, tRPC följer semantic versioning strikt och vi introducerar aldrig breaking changes i minor versioner.
Vi betraktar även ändringar i exportade TypeScript types som major changes, förutom de markerade med @internal i JSDoc.
Varför har tRPC redan en så hög versionsnummer?
När tRPC startade och hade väldigt få användare, itererade vi ofta på API-designen samtidigt som vi var strikta med semver.
-
De första 9 versionerna av tRPC släpptes under projektets första 8 månader.
-
Version 10 som vi släppte 14 månader efter v9 bör ses som den riktiga "version 2" av tRPC där vi gjorde grundläggande API-förändringar. (2 is 10 in binary, amirite?)
Vi förväntar oss att API:t är stabilt nu och planerar att släppa codemods för framtida breaking changes, precis som vi gjorde med uppgraderingen från v9 till v10.
slug: typescript-performance-lessons title: Lärdomar om TypeScript-prestanda vid omstrukturering för v10 authors: [sachinraja]
Något annat du undrar över?
Skicka en förbättringsförfrågan på GitHub, skriv i GitHub Discussions eller på Discord. Du är också välkommen att föreslå förbättringar för denna sida eller andra sidor via knappen "Redigera denna sida" längst ner på sidan.