DEV Community

AttractivePenguin
AttractivePenguin

Posted on

TypeScript 6.0 RC & 7.0 Go Compiler: The Biggest Release in TypeScript History

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"]
  }
}
Enter fullscreen mode Exit fullscreen mode

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`);
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

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));
Enter fullscreen mode Exit fullscreen mode

Subpath Imports with #/

// package.json
{
  "imports": {
    "#/utils/*": "./src/utils/*"
  }
}

// Usage
import { helper } from '#/utils/helper';
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

Impact: No more automatic inclusion of @types/* packages. You'll need to explicitly declare types:

{
  "compilerOptions": {
    "types": ["node", "express", "jest"]
  }
}
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

Your existing code may now trigger new errors. Fix systematically:

# Check for strict errors before upgrading
npx tsc --strict
Enter fullscreen mode Exit fullscreen mode

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' };
Enter fullscreen mode Exit fullscreen mode

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:

  1. Native performance — Compiled language, no VM overhead
  2. Concurrency — Goroutines handle parallel type checking efficiently
  3. GC — Automatic memory management like Node.js, but more efficient
  4. 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/
Enter fullscreen mode Exit fullscreen mode
{
  "compilerOptions": {
    "typescriptExtension": "@typescript/native-preview"
  }
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Step 2: Fix Deprecation Warnings

Run your build and address any deprecation warnings:

npx tsc 2>&1 | grep -i deprecat
Enter fullscreen mode Exit fullscreen mode

Step 3: Update tsconfig.json

{
  "compilerOptions": {
    "target": "ES2025",
    "lib": ["ES2025"],
    "module": "esnext",
    "moduleResolution": "bundler",
    "strict": true,
    "types": ["node"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
Enter fullscreen mode Exit fullscreen mode

Step 4: Test Thoroughly

# Run your full test suite
npm test

# Check for type errors
npx tsc --noEmit

# Verify build output
npm run build
Enter fullscreen mode Exit fullscreen mode

Step 5: Prepare for 7.0

# When ready to test 7.0 native preview
npm install -D @typescript/native-preview@next
Enter fullscreen mode Exit fullscreen mode

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"]
  }
}
Enter fullscreen mode Exit fullscreen mode

"Module not found" after upgrading

// Old: moduleResolution: node
// New: moduleResolution: node16 or bundler

{
  "compilerOptions": {
    "moduleResolution": "bundler"
  }
}
Enter fullscreen mode Exit fullscreen mode

Strict mode errors flooding

// Temporarily disable while migrating
{
  "compilerOptions": {
    "strict": false
  }
}

// Fix issues incrementally, then re-enable
Enter fullscreen mode Exit fullscreen mode

@types packages not being found

// Explicitly declare types
{
  "compilerOptions": {
    "types": ["node", "express", "jest", "@types/puppeteer"]
  }
}
Enter fullscreen mode Exit fullscreen mode

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:

  1. Run npx tsc --strict on current code
  2. Fix all strict mode errors
  3. Remove deprecated config options
  4. Test with typescript@rc
  5. 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-preview in 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)