TypeScript 6.0 RC & 7.0 Go Compiler: The Biggest Release in TypeScript History
The Transition That Changes Everything
March 2026 marks a pivotal moment in TypeScript's evolution. On March 6, 2026, TypeScript 6.0 reached Release Candidate — but this isn't just another point release. It's the bridge to the most significant architectural change in TypeScript's history: the upcoming Go-based compiler for TypeScript 7.0.
If you're a TypeScript developer, you need to understand what's happening and how it affects your projects. Here's the complete breakdown.
TypeScript 6.0 RC: What's New
TypeScript 6.0 is billed as the "last JavaScript-based TypeScript" — a transitional release that prepares the ecosystem for TypeScript 7.0's Go-based compiler while delivering meaningful improvements today.
ES2025 Support
{
"compilerOptions": {
"target": "ES2025",
"lib": ["ES2025"]
}
}
ES2025 doesn't introduce major new JavaScript features, but it updates type definitions for built-in APIs. The key point: TypeScript 6.0 defaults to ES2025 for both target and lib.
Temporal API Types (Stage 3)
The Temporal API is finally getting type definitions:
// With --target esnext or lib: ["esnext"]
const now = Temporal.Now.plainDateTimeISO();
const meeting = Temporal.PlainDateTime.from('2026-03-15T14:00:00');
const duration = now.until(meeting);
console.log(`Meeting in ${duration.total({ unit: 'days' })} days`);
This is huge for anyone who's struggled with JavaScript's Date API.
RegExp.escape (Stage 4)
// Finally! Safe regex escaping
const escaped = RegExp.escape('special.characters[here]');
const regex = new RegExp(`^${escaped}$`);
// Matches literally: special.characters[here]
New Map/WeakMap "Upsert" Methods
const cache = new Map<string, User>();
// getOrInsert - returns existing or creates new
const user = cache.getOrInsert('user-123', () => fetchUser('user-123'));
// getOrInsertComputed - compute if absent
const cached = cache.getOrInsertComputed('user-456', (key) => expensiveComputation(key));
Subpath Imports with #/
// package.json
{
"imports": {
"#/utils/*": "./src/utils/*"
}
}
// Usage
import { helper } from '#/utils/helper';
Supported under node20, nodenext, and bundler module resolution.
Breaking Changes You Need to Know
TypeScript 6.0 introduces several breaking changes that will break existing projects:
1. rootDir Defaults to .
{
"compilerOptions": {
"rootDir": "." // Was previously inferred
}
}
Impact: If your tsconfig.json relied on implicit rootDir behavior, you may need to explicitly set it.
2. types Defaults to []
{
"compilerOptions": {
"types": [] // Previously defaulted to ['node', ...] in some configs
}
}
Impact: No more automatic inclusion of @types/* packages. You'll need to explicitly declare types:
{
"compilerOptions": {
"types": ["node", "express", "jest"]
}
}
Benefit: Microsoft reports 20-50% faster build times in tested projects due to reduced type checking.
3. Strict Mode Enabled by Default
{
"compilerOptions": {
"strict": true // Was false by default
}
}
Your existing code may now trigger new errors. Fix systematically:
# Check for strict errors before upgrading
npx tsc --strict
4. Deprecated Features
These are now deprecated and will be removed in TypeScript 7.0:
| Deprecated | Use Instead |
|---|---|
target: es5 |
target: ES2015 or higher |
--downlevelIteration |
--target ES2015+ |
--moduleResolution node |
--moduleResolution node16 or bundler
|
module: amd/umd/system |
module: esm or commonjs
|
--baseUrl |
paths in compilerOptions
|
--moduleResolution classic |
node16 or bundler
|
Import Assertions → Import Attributes
// DEPRECATED (will error in TS 7.0)
import config from './config.json' assert { type: 'json' };
// NEW SYNTAX
import config from './config.json' with { type: 'json' };
TypeScript 7.0: The Go-Based Compiler
This is the game-changer. TypeScript 7.0, currently in preview with Visual Studio 2026, represents a complete rewrite of the compiler and language services in Go.
Project Codename: "Project Corsa"
Microsoft's team has been working on "tsgo" — a Go-based TypeScript compiler that promises:
- Up to 10x faster compilation for large codebases
- Significantly reduced memory usage
- Better parallelism utilizing Go's goroutines
Why Go?
The choice of Go wasn't arbitrary:
- Native performance — Compiled language, no VM overhead
- Concurrency — Goroutines handle parallel type checking efficiently
- GC — Automatic memory management like Node.js, but more efficient
- Structural similarity — Go's type system maps well to TypeScript's
Getting Started with TypeScript 7.0 Native Preview
# Install the native preview package
npm install -D @typescript/native-preview
# Or use VS 2026 Insiders for the full experience
# Download from: https://visualstudio.microsoft.com/insiders/
{
"compilerOptions": {
"typescriptExtension": "@typescript/native-preview"
}
}
Current Limitations
As of the March 2026 preview:
- Not all features parity — Some advanced type manipulations may behave differently
- Plugin ecosystem — Some TypeScript plugins need updating for Go compatibility
- IDE integration — Best experience in VS 2026; VS Code support coming
Migration Guide: TypeScript 6.0 → 7.0
Step 1: Upgrade to TypeScript 6.0 First
npm install -D typescript@rc
Step 2: Fix Deprecation Warnings
Run your build and address any deprecation warnings:
npx tsc 2>&1 | grep -i deprecat
Step 3: Update tsconfig.json
{
"compilerOptions": {
"target": "ES2025",
"lib": ["ES2025"],
"module": "esnext",
"moduleResolution": "bundler",
"strict": true,
"types": ["node"]
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Step 4: Test Thoroughly
# Run your full test suite
npm test
# Check for type errors
npx tsc --noEmit
# Verify build output
npm run build
Step 5: Prepare for 7.0
# When ready to test 7.0 native preview
npm install -D @typescript/native-preview@next
Performance Benchmarks
Based on Microsoft's internal testing and community reports:
| Project Size | TS 5.x Build Time | TS 7.0 (Go) Build Time | Speedup |
|---|---|---|---|
| Small (<5K lines) | ~2s | ~0.8s | 2.5x |
| Medium (20K lines) | ~15s | ~3s | 5x |
| Large (100K+ lines) | ~90s | ~12s | 7.5x |
| Enterprise (500K+ lines) | ~8min | ~50s | ~10x |
Memory usage reductions: 40-60% compared to JavaScript-based compiler.
Troubleshooting Common Issues
"Cannot find name 'Promise'"
// Add lib: ["ES2025"] or ["ES2015"]
// Or if you really need ES5:
{
"compilerOptions": {
"target": "ES5",
"lib": ["ES5", "DOM"]
}
}
"Module not found" after upgrading
// Old: moduleResolution: node
// New: moduleResolution: node16 or bundler
{
"compilerOptions": {
"moduleResolution": "bundler"
}
}
Strict mode errors flooding
// Temporarily disable while migrating
{
"compilerOptions": {
"strict": false
}
}
// Fix issues incrementally, then re-enable
@types packages not being found
// Explicitly declare types
{
"compilerOptions": {
"types": ["node", "express", "jest", "@types/puppeteer"]
}
}
Frequently Asked Questions
Q: Should I upgrade to TypeScript 6.0 now?
A: Yes, if you're starting a new project. For existing projects, upgrade in a separate branch and test thoroughly before merging. The breaking changes (especially types: [] and strict mode) require attention.
Q: When will TypeScript 7.0 be stable?
A: Early 2026, according to Microsoft's roadmap. The exact date depends on feature parity between the Go compiler and current JavaScript implementation.
Q: Will existing TypeScript plugins work with 7.0?
A: Most will need updates. Check plugin repositories for Go-compatible versions. Microsoft is providing migration guides.
Q: Is the Go compiler faster because it's compiled?
A: Partly. The bigger gains come from Go's better memory management and native concurrency support for parallel type checking across multiple CPU cores.
Q: Should I wait for TypeScript 7.0 before learning TypeScript?
A: Absolutely not. TypeScript 6.0 is excellent and learning TypeScript fundamentals now will make the transition smoother. The core language and APIs remain the same.
Q: What happens to the JavaScript compiler after 7.0?
A: TypeScript 7.0 will be the primary release. The JavaScript implementation may be maintained for a过渡 period but won't receive new features.
Q: How do I prepare my team's codebase?
A:
- Run
npx tsc --stricton current code - Fix all strict mode errors
- Remove deprecated config options
- Test with
typescript@rc - Plan 7.0 adoption for after stable release
TL;DR
- TypeScript 6.0 RC (March 6, 2026) is the last JavaScript-based release
- GA expected March 17, 2026 — upgrade soon
- Breaking changes:
rootDir,types: [], strict mode by default, deprecated features - Build time improvements of 20-50% just from updated type resolution
- TypeScript 7.0 brings Go-based compiler with up to 10x speedup
- Preview available now via
@typescript/native-previewin VS 2026 Insiders
The future of TypeScript is faster, more efficient, and still backward-compatible. Time to upgrade.
Have you tried TypeScript 6.0 RC or the 7.0 preview? Share your experience in the comments.
Resources:
Top comments (0)