TypeScript 6.0: the bridge release before the native compiler

By

Published Updated 2 min read

TypeScript 6.0 shipped on March 23, 2026 as the last release built on the JavaScript codebase. It adds little new syntax. Its job is to align defaults and deprecate legacy options so that the move to the native TypeScript 7 compiler is boring.

What changed in the defaults

If your tsconfig.json relied on implicit behavior, expect new errors after upgrading:

  • strict is now true by default.
  • module defaults to esnext and target floats to the current ES edition (es2025 at the time of writing).
  • types defaults to [], so global @types/* packages are no longer included automatically.
  • noUncheckedSideEffectImports is on, so import './styles.css' must resolve.

The types change is the one most projects notice first. Declare what you need explicitly:

JSON
{
  "compilerOptions": {
    "target": "es2025",
    "module": "esnext",
    "moduleResolution": "bundler",
    "strict": true,
    "types": ["node"],
    "skipLibCheck": true
  }
}

Deprecated options

Legacy settings such as moduleResolution: "node" (the old node10 behavior) and target: "es5" are deprecated and scheduled for removal in 7.0. You can silence the warnings while you migrate:

JSON
{
  "compilerOptions": {
    "ignoreDeprecations": "6.0"
  }
}

Treat this as a temporary bridge, not a fix. Options silenced this way stop working in TypeScript 7.

Newer library types

The es2025 lib now includes types for features that are already shipping in runtimes: new Set methods, iterator helpers, Promise.try and RegExp.escape.

TypeScript
const admins = new Set(['ann', 'bob']);
const online = new Set(['bob', 'cleo']);


const onlineAdmins = admins.intersection(online); // Set { 'bob' }


const pattern = new RegExp(RegExp.escape('1+1=2'));

A migration checklist

  1. Upgrade to TypeScript 6.0 and run tsc --noEmit.
  2. Add types explicitly and fix any missing globals.
  3. Replace deprecated options instead of silencing them.
  4. Try --stableTypeOrdering to make type ordering match 7.0 and reduce differences between the two compilers.
  5. Only then upgrade to 7.0 (see our next article).

Doing these steps on 6.0 keeps the 7.0 upgrade a version bump rather than a project.

Sources and further reading