TypeScript 6.0 Breaking Changes — Complete Reference
TypeScript 6.0 is the last JavaScript-based major release before the TS 7.0 Go rewrite. It removes legacy module systems, changes compiler defaults, and deprecates options that will be hard-removed in 7.0. Here is every breaking change you need to know.
TypeScript 6.0 Migration Checker
Paste your tsconfig.json and instantly see every breaking change, deprecated option, and default shift in TypeScript 6.0. Get a readiness grade, step-by-step fixes, and a corrected config. Supports JSONC (comments & trailing commas).
What changed in TypeScript 6.0?
TypeScript 6.0 is the last JavaScript-based major release before the TypeScript 7.0 Go rewrite. It includes significant breaking changes to compiler defaults, removes legacy module systems, and deprecates options that will be hard-removed in 7.0.
Removed
- target ES3/ES5
- outFile option
- module AMD/UMD/System
- moduleResolution classic
- esModuleInterop: false
Deprecated
- moduleResolution: node
- baseUrl as resolution root
- downlevelIteration
- alwaysStrict: false
- module: none
New Defaults
- strict: true
- target: es2025
- module: esnext
- moduleResolution: bundler
- types: [] (empty)
Build or update your config with the tsconfig.json Visual Builder. All analysis runs client-side — your config never leaves your device.
Removed compiler options
TypeScript 6.0 removes several long-standing options. "target": "es3" and "target": "es5" are no longer valid — the lowest supported target is now "es2015". The "outFile" option is completely removed; use a bundler like Webpack, Rollup, or esbuild instead. The module systems "amd", "umd", and "systemjs" are removed as well. If your project uses any of these, you must update before upgrading to TS 6.0.
Changed default values
Nine compiler option defaults have changed. "strict" now defaults to true (was false), "target" defaults to "es2025" (was "es5"), "module" defaults to "esnext" (was "commonjs"), "moduleResolution" defaults to "bundler" (was "node10"), "rootDir" defaults to the tsconfig.json directory (was inferred), and "types" defaults to an empty array (was all @types). Projects without explicit settings will behave differently after upgrading.
The escape hatch
All deprecations in TS 6.0 can be temporarily silenced by adding "ignoreDeprecations": "6.0" to your tsconfig.json compilerOptions. This buys time for migration but will NOT work in TypeScript 7.0, so plan to address every issue before the next major release.
Frequently Asked Questions
What is the biggest breaking change in TypeScript 6.0?
The biggest impact for most projects is the "strict": true default. Projects that never explicitly set strict will suddenly see many new type errors. The "types": [] default is also impactful — global type declarations like Buffer, process, and Jest matchers will be missing unless explicitly listed.
Can I still target ES5 in TypeScript 6.0?
No. TypeScript 6.0 removes ES3 and ES5 targets. The lowest supported target is "es2015". For ES5 output, use an external tool like esbuild, SWC, or Babel as a post-compilation step.
Is there a migration tool for TypeScript 6.0?
Yes. The ts5to6 CLI tool handles baseUrl removal and rootDir inference fixes automatically. DevBolt's TypeScript 6.0 Migration Checker analyzes your tsconfig.json and shows every issue with step-by-step fixes.
Related Inspect Tools
Cron Expression Parser
Parse cron schedules into plain English with next run times
Word & Character Counter
Count words, characters, sentences, and estimate reading time
Chmod Calculator
Calculate Unix file permissions with an interactive permission matrix
JSON Path Tester
Test JSONPath expressions against JSON data with real-time evaluation