TypeScript 7.0 RC: Go-Powered Compiler Rewrite Guide
Technical Deep-Dive

TypeScript 7.0 RC: Go-Powered Compiler Rewrite

The biggest TypeScript release in the language's history — a complete native compiler in Go delivering ~10x faster builds, shared-memory parallelism, and new configuration controls. What it means for your projects and how to migrate.

June 24, 2026 10 min read Oleg Maximov

Project Corsa: The Go Rewrite

On June 18, 2026, Daniel Rosenwasser (Microsoft) announced the TypeScript 7.0 Release Candidate — a milestone that has been years in the making. For the first time in TypeScript's history, the compiler is not written in TypeScript. Instead, Microsoft has methodically ported the entire codebase to Go, codenamed "Project Corsa".

This is not a rewrite from scratch — the type-checking logic is structurally identical to TypeScript 6.0. Every inference rule, every variance check, every control flow analysis was carefully ported line by line. The result is a compiler that produces identical type-checking results but runs approximately 10 times faster — and in some cases significantly more on large codebases.

The speed improvement comes from two architectural changes:

Installing TypeScript 7.0 RC

Getting started is the same as any npm package:

npm install -D typescript@rc

Verify the installation:

> npx tsc --version
Version 7.0.1-rc

For editor support, install the TypeScript Native Preview extension for VS Code. It uses the same Go compiler foundation, so you get the same performance improvements in your editor as on the command line. The extension is built on the Language Server Protocol (LSP), making it compatible with most modern editors and tools like Copilot CLI.

Running Side-by-Side with TypeScript 6.0

TypeScript 7.0 RC can coexist with TypeScript 6.0 on the same system. Install it as a separate package:

npm install -D typescript@rc
# Your tsconfig.json can reference [email protected] globally
# while specific projects use the RC

The VS Code extension runs independently from the built-in TypeScript version in your editor. You can configure which projects use TS 7.0 and which stay on 6.0 through your workspace settings.

Parallelization and Performance Controls

The most impactful architectural change in TypeScript 7.0 is true multi-threaded parallelism. The old JavaScript compiler was fundamentally single-threaded — even with async I/O, the CPU-intensive work (parsing, type-checking, emitting) ran sequentially. The Go compiler can distribute this work across threads.

Checker Parallelization (--checkers)

TypeScript 7.0 introduces a pool of parallel type-checker workers. The --checkers flag controls how many workers are spawned (default: 4). These workers operate independently on different source files and their results are merged at the end — producing identical output regardless of execution order.

# Use more checkers for large codebases (more memory, faster)
npx tsc --checkers 8

# Use fewer for small projects (less overhead)
npx tsc --checkers 2

Increasing the checker count significantly speeds up large codebases at the cost of higher memory usage and CPU. For smaller projects, the default 4 may be more than necessary — reducing to 2 can actually be faster by avoiding worker management overhead.

Project Reference Builder Parallelization (--buildJobs)

For monorepo setups using TypeScript project references, the new --buildJobs flag enables parallel building across projects. The build system respects the project dependency graph — a project cannot start building before its dependencies are complete — but independent projects are built concurrently.

# Enable parallel project builds in monorepos
npx tsc --build --buildJobs 4

Single-Threaded Mode (--singleThreaded)

For debugging, profiling, or resource-constrained environments (CI runners with limited cores), the --singleThreaded flag disables all parallelism:

# Force single-threaded execution
npx tsc --singleThreaded

Improved --watch Mode

The incremental compilation system has been rebuilt on the new Go foundation. The --watch mode now uses:

For VS Code users, the extension handles tsconfig.json paths more reliably and reduces unnecessary toolchain dependencies in the editor process.

New Configuration Defaults

TypeScript 7.0 modernizes several long-standing defaults that have been best practices for years:

Option TS 6.x Default TS 7.0 Default
strict false true
module commonjs esnext
target es5 Latest stable ES
noUnusedSideEffectImports false true
types ["node", ...] []
stableLibOrdering false true (locked)

The most impactful change is strict: true as default. For existing projects migrating from 6.x, you may need to explicitly set "strict": false in tsconfig.json if you have a large codebase not yet fully typed. New projects should embrace these defaults.

Breaking Changes and Removed Options

Several legacy options have been removed to modernize the language and simplify the compiler:

Removed Targets

Removed Module Formats

Removed Features

Import Attributes

Import attributes now require the type keyword explicitly:

// Before (TS 6.x — deprecated but accepted)
import data from './data.json' with { type: 'json' };

// After (TS 7.0 — required)
import data from './data.json' with { type: 'json' };

// This also requires the type keyword now:
import { type } from './module.js';

Template Literal Type Improvements

TypeScript 7.0 improves how template literal types handle Unicode. The new compiler preserves Unicode code points naturally — emoji sequences and complex characters are treated as single units instead of being split into surrogate pairs. This aligns template literal type inference with JavaScript's actual runtime behavior:

type Emoji = '👍' | '🚀' | '💡';
type WithPrefix = `icon-${Emoji}`;
// TS 7.0 preserves the emoji as a single unit
// 'icon-👍' | 'icon-🚀' | 'icon-💡'

JavaScript File Checking Tightened

For projects using checkJs: true, several JSDoc-related behaviors are now stricter:

Migration Strategy from TypeScript 6.x

Moving from TypeScript 6.x to 7.0 requires some planning. Here's a recommended approach:

Phase 1: Audit Your Configuration

Run npx typescript@rc --showConfig to see what new defaults would apply. Pay special attention to:

Phase 2: Update Module Formats

If you use amd, umd, or system, migrate to ESM or let your bundler handle it. If you use node16 or node22 resolution, switch to nodeNext.

Phase 3: Test with the RC

Install typescript@rc alongside your existing version and run your CI pipeline. The type-checking semantics are identical, so any new errors are from the default changes — not the type system itself.

# Test in CI alongside existing TS version
npm install -D typescript@rc
npx tsc --noEmit  # Check for config-related errors

Phase 4: Tune Parallelism

Once the RC is passing, experiment with --checkers and --buildJobs to find the optimal settings for your codebase and CI runners. Start with defaults, then increase for faster builds.

FAQ

What is TypeScript 7.0 and what makes it different?
TypeScript 7.0 is the first release built on a completely new Go-powered compiler (codename Project Corsa) instead of the TypeScript-to-JavaScript codebase used since the language's inception. This native rewrite delivers approximately 10x faster build performance through native code speed and shared-memory parallelism. The type-checking logic is structurally identical to TypeScript 6.0 — the same semantics, just dramatically faster.
How do I install TypeScript 7.0 RC?
Install via npm: npm install -D typescript@rc. Verify with npx tsc --version which should return Version 7.0.1-rc. For editor support, install the TypeScript Native Preview extension for VS Code, which uses the same Go compiler foundation for editor performance improvements.
Can I run TypeScript 7.0 alongside TypeScript 6.0?
Yes. Install typescript@rc as a separate package — it doesn't affect your existing TypeScript 6.0 installation. The VS Code extension also runs independently from the built-in TypeScript version, letting you switch between the two per-project through workspace settings. This makes it easy to test the RC on a subset of projects before a full migration.
What new configuration options does TypeScript 7.0 introduce?
Three main new flags: --checkers (default 4) controls parallel type-checking worker count; --buildJobs enables parallel building of TypeScript project references in monorepos; --singleThreaded disables all parallelism for debugging. New defaults include strict: true, module: esnext, noUnusedSideEffectImports: true, and types: [] (empty). stableLibOrdering is now always enabled.
What breaking changes does TypeScript 7.0 introduce?
TypeScript 7.0 removes es3 target support, amd/umd/system module formats, node16/node22 resolution modes, downlevelIteration, and jsx:preserve/react (use react-jsx instead). The @enum JSDoc tag is no longer recognized. Import attributes now require the type keyword. The asserts keyword is banned in namespace bodies. These removals affect primarily legacy and niche configurations — most modern TypeScript projects won't need significant changes.
How much faster is the Go compiler in practice?
Microsoft reports approximately 10x faster build performance. Early adopters — Bloomberg, Canva, Figma, Google, Linear, Miro, Notion, Slack, Vercel, and others — reported similar speedups on multi-million-line codebases. The improvement comes from native Go execution (eliminating Node.js startup and JIT warmup) and shared-memory parallelism across CPU cores. Teams report shaving off the majority of their build times.
Is TypeScript 7.0 stable enough for production use?
The RC has been validated against TypeScript's decade-old test suite and is already in use across multiple multi-million-line codebases at Microsoft and partner companies. Since it's a methodical port (not a rewrite) with structurally identical type-checking logic, compatibility is extremely high. Microsoft recommends trying it in daily workflows and CI pipelines. The final stable release is expected soon after the RC cycle concludes.

Need a TypeScript Expert?

TypeScript 7.0 is the most significant release in the language's history, and migrating your project's configuration and build pipeline requires careful planning. If your team needs help with the upgrade — or if you're building a new project and want to start on the right foot — reach out to me.

I'm a full-stack web developer with deep experience in TypeScript, Node.js, React, and the modern JavaScript ecosystem. Based in Minsk and working worldwide, I help businesses build performant, well-architected web applications. Let's discuss your project.

Contact

Let's discuss your project

Planning a TypeScript project or need help migrating to TypeScript 7.0? Tell me about your project — I'll provide a preliminary estimate. Free of charge.