There's one big caveat though, and it's the sheer complexity of the Typescript project. The type checker itself is Typepscript's largest component and it's a single 25 thousand line file.
The project is so big I get the sense that it's the open source equivalent of a black box. No one besides Microsoft really understands how it works, and even Microsoft themselves have said the project is so complicated that optimizations are blocked by complexity.
And this is kind of bad because it means that Typescript is 100% in the hands of Microsoft, and I don't mean this in the anti-corporate sense. I mean this in the simple sense that if anyone has an idea to improve the project, or build off of it, the only way it can be made a possibility is if it goes through Microsoft and they implement it. Microsoft has their own goals for the project, and they cannot accommodate every feature request and use-case.
The primary problem is
This doesn't just affect us at compilation time, it also affects us at development-time. tsserver can have trouble keeping up with big projects, not to mention the memory requirements of running it. VSCode has good language support for Typescript, and it's no surprise since it's made by Micrsoft, but you'll experience slow downs if using another editor.
So where do we go from here? The swc project is actively working on a type-checker in Rust, but it's closed-source and they plan on selling it.
It seems Deno and Rome tools are discussing ways to tackle the problem, but they seem far from having something ready.
esbuild's author Evan Wallace has said that type-checking is out of scope for the project.
Microsoft says they have no plans to port the Typescript compiler to Rust, and I get the sense that they have a different vision for Typescript.
Update: I'm working on a Typescript type-checker of my own, tyty