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 man felsöker och löser dem.
Du är välkommen att bidra till denna sida med förbättringar eller skapa en ny diskussion på GitHub om din fråga inte besvaras här. Titta också igenom GitHub-diskussionerna och vår Discord om din fråga inte besvaras 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 denna fil 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?
Detta är en svår fråga att besvara, men eftersom tRPC saknar 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 hela ditt 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 server- och klient-
tsconfig.json-filer utan ett bundlet server-monorepo-paket, se till att du har"paths": [...]i din klient-tsconfig.jsonsom 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 öppna källkodsprojekt 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 13 App Layouts & RSC?
Ja, tRPC fungerar med Next.js 13 App Layouts och React Server Components, men vi har ännu inte byggt några officiella exempel på det.
För mer information kan du läsa och följa denna issue där vi refererat till flera exempel.
Ä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 hade den få användare och vi itererade ofta på API-designen samtidigt som vi strikt följde 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.
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.