Back to Blog
Developer Tools May 2, 2026 5 min read

TypeScript 6.0 Is the Last JS-Based Release — Microsoft's Go Rewrite (Project Corsa) Delivers 10x Faster Type-Checking

TypeScript 6.0 shipped March 23 as the final version of the compiler written in TypeScript. Project Corsa — Microsoft's rewrite of the entire TypeScript compiler in Go — is already in native preview and cuts VS Code's 1.5M-line type-check from 77 seconds to 7.5 seconds.

TypeScript 6.0 Is the Last JS-Based Release — Microsoft's Go Rewrite (Project Corsa) Delivers 10x Faster Type-Checking

TypeScript 6.0 landed on March 23 with a footnote that changes the compiler’s entire future: it’s the last version written in TypeScript. Microsoft has been rebuilding the compiler in Go under a project called Project Corsa, and the native preview of TypeScript 7.0 is already available. The headline number — a 10x speedup in type-checking — is real, and the VS Code benchmark makes it visceral: the editor’s own 1.5 million lines of TypeScript go from a 77-second cold type-check to 7.5 seconds.

Anders Hejlsberg — the creator of TypeScript (and C#, and Delphi before that) — announced the project himself in March 2025. The fact that the rewrite has progressed far enough for a native preview in under a year is a signal about how serious Microsoft is about shipping this.

Why Go, Not Rust

The most common question has been why Microsoft chose Go over Rust, especially given the company’s broader investment in Rust for systems work. The answer is architectural: TypeScript’s compiler was not designed with Rust’s ownership model in mind.

The codebase has lots of shared mutable state, complex recursive type inference, and twelve years of evolved code that relies heavily on mutating shared data structures. Porting that to Rust would have required rewriting huge chunks of the logic from scratch — essentially building a new compiler rather than porting the existing one. Go’s garbage-collected memory model maps much more cleanly to how the TypeScript compiler actually works internally.

C# was also evaluated. The concern there was ecosystem friction: requiring the .NET runtime as a dependency for a JavaScript build tool would add complexity to the developer toolchain and complicate distribution in non-Windows environments.

What TypeScript 7.0 Changes for Developers

The compiler speedup is the obvious win. But Project Corsa has deeper implications:

Language server performance: The TypeScript language server (tsserver) powers IDE autocomplete, go-to-definition, and inline error diagnostics in every major editor. A 10x faster compiler means a 10x more responsive editing experience for large codebases. No more 2-second delays waiting for autocomplete in a monorepo.

Build pipelines: CI type-check steps that currently run for minutes in large projects will run in seconds. This reduces the iteration cost for teams that enforce strict type-checking before merging.

Watch mode: The tsc --watch feedback loop tightens dramatically. Making a change and seeing whether it type-checks becomes nearly instantaneous even on codebases with hundreds of thousands of lines.

TypeScript 6.0: What Actually Shipped

The current stable release isn’t just a bridge to 7.0 — it includes real language improvements. The headline features include improved narrowing for discriminated unions, better inference for complex generic patterns, and a set of strictness improvements that are opt-in for now but will likely become defaults in 7.0.

The breaking changes in 6.0 are intentional housecleaning before the compiler transition. Several legacy behaviors that were preserved for backward compatibility in 5.x were removed. If you’re running strict: true already, the migration is unlikely to surface many issues. The TypeScript team published a migration guide with the release.

Timeline

A stable TypeScript 7.0 release has not been given a specific date, but the project is ahead of the schedule Hejlsberg outlined in 2025. The native preview supports all TypeScript language features. Remaining work is primarily around language service completeness, edge cases in complex type inference, and integration testing across the ecosystem.

For most projects, the practical move right now is to stay on 6.0, watch the 7.0 preview releases, and start testing against the native build in CI as soon as it supports your codebase’s feature set.

typescript developer-tools microsoft go compiler