typescript-6
TypeScript 6.0
Apply these conventions when working with TypeScript 6.0+ (released 2026-03-23). 6.0 is a bridge release — the final version on the JavaScript-based compiler before the stable Go-native TypeScript 7 port. Most 6.0 changes are about modern defaults and deprecations; the goal is to make the 7.0 jump uneventful.
Do not start new projects on TypeScript 6. Use TypeScript 7 unless a compiler-API consumer, custom transformer, framework, or embedded-language tool still requires TypeScript 6. For existing projects, use this skill to clear 6.0 deprecations, then follow the TypeScript 7 skill's porting section.
New Compiler Defaults (these change build behavior)
strict: true— wasfalse. Implicitany, null checks, function types, bind/call/apply, property init, etc. all enforced by default.module: "esnext"— was"commonjs". Output is ESM unless overridden.target— floats to the latest stable; in 6.0 it resolves to"es2025".types: []— was implicitly "all@types/*innode_modules". Now you must opt-in:"types": ["node", "jest"]. Big perf and correctness win.noUncheckedSideEffectImports: true— bareimport "./foo"now type-checks the imported module's existence.rootDir: "."— was inferred from the input file set. Output layout in monorepos is now stable across edits.
If a project breaks on upgrade, the cause is almost always one of these defaults — pin the old value explicitly in tsconfig.json and migrate one flag at a time.