← All posts

TypeScript 7.0 RC: Go-based compiler and up to 10× speed

Microsoft shipped TypeScript 7.0 RC on a new Go foundation: 6.0 compatibility, parallel builds, @typescript/typescript6 side-by-side, and a rebuilt --watch.

Contents

In brief

Microsoft announced the TypeScript 7.0 Release Candidate — the first major release on a new foundation: the compiler is rewritten in Go instead of the self-hosted TypeScript codebase. The team promises up to 10× speed vs 6.0 while keeping structural type-checking parity and the ability to run 7.0 alongside 6.0.

What happened

TS 7.0 development took over a year: the existing compiler codebase was ported to Go with the same type-checking logic as 6.0. This is not “a different type system” — same semantic contract, faster runtime.

Install remains via npm as usual. For gradual migration there is @typescript/typescript6: keep the old compiler in the same repo while the team validates 7.0 on CI and in the IDE.

Improvements beyond “just faster”:

  • Parallelization — configurable worker count for type-check and project builder; gains show most on large monorepos.
  • --watch — rebuilt with a new file-watching mechanism (borrowed from Parcel): more stable on macOS/Linux/Windows, fewer spurious full rebuilds.
  • Structural parity with 6.0 — RC goal: same errors on the same files as the previous major line.

Why it matters

Compiler speed is not a vanity metric: in a monorepo with hundreds of packages, every second of tsc multiplies across every push and every local dev loop. The Go implementation bets on predictable performance and parallelism without rewriting the @types/* ecosystem and tsconfig universe.

RC is when teams should run 7.0 on a representative slice: not only “it builds” but diagnostics match. The 6.0 compatibility package lowers big-bang risk — flip CI in stages (nightly first, then default branch).

In practice

  1. Install RC on a branchnpm install typescript@rc (or the version from the announcement) and compare tsc --noEmit time with 6.0.
  2. Use @typescript/typescript6 — if plugins or scripts hard-pin the old binary, keep both until the toolchain stabilizes.
  3. Tune parallelism — on large repos, pick worker count for your CI runner (not “all cores” blindly).
  4. Exercise --watch locally — especially if you previously hit missed changes or extra full rebuilds.
  5. Record diagnostic diffs — any mismatch with 6.0 on RC is worth a TypeScript repo issue while the migration window is open.
Scenario Expected gain
Small SPA Faster, not transformative
Large monorepo Up to ~10× on cold build
Dev --watch Less lag, stabler across OSes

Takeaway

TypeScript 7.0 RC is an infrastructure release: same language for developers, different engine underneath. Start a CI experiment now while RC gathers feedback — and do not postpone comparing diagnostics with 6.0; that diff defines how painless GA will be.