Article summary
The TypeScript team has embarked on an ambitious new direction: porting the TypeScript compiler and type checker to Go. TypeScript’s Go port is a major shift, set to dramatically speed up compilation, improve editor performance, and reduce memory usage — a game-changer for developers working in large-scale codebases.
A 10x Performance Boost
One of the biggest challenges TypeScript has faced is scaling to massive projects. Large codebases experience slow type-checking, long editor startup times, and sluggish command-line builds. By moving away from JavaScript’s just-in-time (JIT) compiled environment into Go’s natively compiled execution model, the team has already observed 10x faster performance on projects like VS Code and Playwright.
Additionally, Go’s built-in concurrency and efficient memory management contribute to these speed gains. By allowing multiple processes to check different sections of a project simultaneously, TypeScript’s new architecture takes full advantage of modern multi-core processors.
Go vs. Rust
Many developers initially assumed that Rust — given its growing adoption in developer tooling — would be the natural choice. However, Go’s garbage collection and flexible data structures align more closely with TypeScript’s architecture, making it easier to port without large-scale rewrites. This ensures a smoother transition with minimal breaking changes.
What’s Next?
The TypeScript team is targeting mid-2025 for a command-line preview of the Go-based tsc
, with full integration — including the language server for editors like VS Code — by the end of the year. While JSX and certain API integrations are still in progress, the potential benefits for developer experience are already clear.
With faster builds, more responsive editors, and new possibilities for AI-powered coding tools, this transition opens a promising new chapter in TypeScript’s evolution.
Further Information
For more details, check out Microsoft’s announcement and insightful discussions with Anders Hejlsberg, co-creator and lead architect of TypeScript: