DevOps & Infrastructure

TypeScript 7: Rewritten in Go with 10x Performance, What Really Changes

9 July 2026 Mehdi 06:39
TypeScript 7: Rewritten in Go with 10x Performance, What Really Changes

TypeScript 7 is officially out, and it’s probably the most structurally significant release since the language was created. If you manage large-scale TypeScript projects, you’ll want to understand what’s changing and what it means in practice.

TypeScript 7: A Complete Rewrite, Not Just an Update

On July 8, 2026, Microsoft announced TypeScript 7.0. Behind that version number sits a radical decision: the compiler and language server have been entirely rewritten in Go. This isn’t a performance patch, it’s a fundamental architectural change.

The choice of Go is worth noting. In the build tooling ecosystem, Rust is often the go-to reference for native performance. Microsoft went with Go instead, a language already used by esbuild for similar reasons. The announced result: gains between 8x and 12x on full builds, thanks to native code, shared memory, and multithreading.

Numbers Measured on Real Projects

The announcement isn’t based on artificial benchmarks. Microsoft published data from well-known open source projects.

Here are the build times compared between TypeScript 6 and TypeScript 7:

  • VS Code: 125.7s vs 10.6s, 11.9x faster
  • Sentry: 139.8s vs 15.7s, 8.9x faster
  • Bluesky: 24.3s vs 2.8s, 8.7x faster
  • Playwright: 12.8s vs 1.47s, 8.7x faster

Memory usage drops too. Bluesky goes from 1.8 GB to 1.3 GB (-26%). VS Code drops from 5.2 GB to 4.2 GB (-18%). These aren’t marginal gains.

In the editor, the impact is even more striking. On the VS Code codebase, the time between opening a file and seeing the first error went from 17.5 seconds to under 1.3 seconds.

Native Parallelization: The Real Engine Behind the Gains

TypeScript 7 parallelizes several build stages: parsing, type checking, and emit. This isn’t just multithreading bolted on top, it’s a redesign of the compilation pipeline.

Two new flags let you control this behavior:

  • --checkers: number of type-checking workers (default: 4)
  • --builders: number of parallel builders for project references
  • --singleThreaded: disables all parallelization, useful for debugging or constrained environments

With --checkers 8, VS Code drops to 7.51s for a 16.7x gain. The gains depend on available core count. In CI with limited resources, dialing this parameter down may actually be more effective.

TypeScript 7 and TypeScript 6 Side by Side: How It Works

TypeScript 7.0 doesn’t ship a public API yet. That’s planned for TypeScript 7.1. In the meantime, Microsoft published a compatibility package: @typescript/typescript6. It provides a tsc6 executable and re-exports the TypeScript 6.0 API, which lets tools like typescript-eslint keep working without any changes.

The recommended setup in package.json:

{
  "devDependencies": {
    "@typescript/native": "npm:typescript@^7.0.2",
    "typescript": "npm:@typescript/typescript6@^6.0.2"
  }
}

This coexistence is intentional and documented. It addresses a real need: some tools still depend on the TypeScript 6 API. This isn’t a sign of fragility, it’s a controlled migration strategy.

New Behaviors and Configuration Changes

TypeScript 7 adopts the defaults introduced in 6.0. Several options change their default values, and two deserve particular attention:

  • rootDir now defaults to ./. Projects where tsconfig.json sits outside of src will need to specify it explicitly.
  • types now defaults to []. Global declarations (@types/node, @types/jest, etc.) will need to be listed explicitly in your config.

Some options now produce hard errors: target: es5, moduleResolution: node/node10, baseUrl, and module: amd. Migration from TypeScript 6.0 is straightforward. From older versions, you’ll need to go through 6.0 first.

Key Takeaways

  • TypeScript 7 is a complete rewrite in Go with real performance gains between 8x and 12x on measured production projects.
  • Native parallelization of parsing, type checking, and emit is the main driver of those gains.
  • The public API isn’t available yet in 7.0: a compatibility package @typescript/typescript6 allows clean coexistence with tools that depend on it.
  • The default changes to rootDir and types are the most common friction points during migration.
  • TypeScript 7 is available right now via npm install -D typescript. Nightly builds will continue under the typescript@next tag.

If you’re working on a sizeable TypeScript project, this release is worth a quick evaluation in a test environment. Feedback from teams at Slack, Canva, Figma, and Vanta is consistent enough that the risk is limited.

Have you already tried TypeScript 7 on your codebase? Migration questions and advanced configuration are exactly the kind of topics I cover regularly here. Follow the blog for more.

Sources

Leave a comment

Your email address will not be published. Required fields are marked *