Jack Fischer
Jack Fischer2y ago

Any tips for Typescript slowness?

We successfully migrated from 9.x to 10 but are still seeing slow VS Code perf (10+ seconds to get any type info) are there any strategies we can use to minimize this?
9 Replies
Alex / KATT 🐱
GitHub
Performance · microsoft/TypeScript Wiki
TypeScript is a superset of JavaScript that compiles to clean JavaScript output. - Performance · microsoft/TypeScript Wiki
Alex / KATT 🐱
you can use e.g. turborepo to split up your codebase into different packages
Jack Fischer
Jack Fischer2y ago
Thank you
isaac_way
isaac_way2y ago
@Jack Fischer Just curious - are you using a lot of zod schemas that use .extend and .pick and that sort of stuff? IE output schemas? We've had some problems in the past and I think that contributed too it a lot
Jack Fischer
Jack Fischer2y ago
Interesting, we're actually not. We're pretty casual users of zod. We do have other type intensive libraries though including EdgeDB. This likely has a lot to do with it but still interested in trpc-specific advice (like yours about zod)
isaac_way
isaac_way2y ago
ah cool thanks for the info, sounds like that would've contributed - always curious about learning more about typescript performance because it can be such a massive issue if it gets bad too bad as I've experienced first hand. we were using Prisma as well, which I would think qualifies as being a typescript intensive library? I guess I don't really have a way of distinguishing whether it was zod or prisma contributing the most to the slow down. Wish there was like some "typescript score" or something that labelled which libraries have the biggest performance impact
Unknown User
Unknown User2y ago
Message Not Public
Sign In & Join Server To View
Jack Fischer
Jack Fischer2y ago
don't really have a way of distinguishing whether it was zod or prisma contributing the most to the slow down
This is exactly our problem. In certain scenarios (for example writing a vanilla next.js endpoint not touching tRPC or zod, but involving edgedb) the editor suddenly becomes super fast. Lacking a way to determine why that is.
now that i think about it, it's not a performance problem but more like typescript goes nuts and gives random errors that stop showing when i close and open the file.
In my experience this is also a performance thing where the random errors are simply old and it's struggling to complete a new round of static analysis. Much like closing/opening, if you leave it alone, it eventually resolves Something we tried that didn't work that I should have mentioned: splitting our 2.5k line tRPC router into multiple files. No impact, or possibly slower One more discovery: Setting typescript.tsserver.maxTsServerMemory higher in vscode helped a ton.
isaac_way
isaac_way2y ago
ooooh that's really good to know @Jack Fischer , thank you