TypeScript 7 Migration Checker
Paste a tsconfig.json and see exactly which compiler options TypeScript 7's Go-based compiler removes
target values (es3/es5 — ES2015 is now the floor), removed module values (amd/umd/systemjs/none), and the flag options keyofStringsOnly, importsNotUsedAsValues, out, prepend, charset, and noStrictGenericChecks. This doesn't replace a real tsc run — it just surfaces the known removals instantly, without installing anything.About this tool
TypeScript 7's Go-based compiler (Project Corsa, the typescript-go/tsgo rewrite) turns a long list of options that were merely deprecated with a warning in TypeScript 6.0 into hard build errors — no output, just a failed build. Paste a tsconfig.json and this tool checks it against the exact known removal list instantly: es3/es5 targets (ES2015 is now the floor), the amd/umd/systemjs/none module formats, and six flag options (keyofStringsOnly, importsNotUsedAsValues, out, prepend, charset, noStrictGenericChecks) that now hard-error instead of warn. This is a config-shape check, not a substitute for actually running the compiler — it can't catch the compiler-API breakage that hits tools like ts-morph or older typescript-eslint versions, which isn't a tsconfig.json problem at all. But it catches the specific, common, entirely avoidable failure mode of upgrading a build pipeline and immediately hitting a config error with no idea which line caused it.
When to use it
- →Checking an inherited tsconfig.json for TypeScript 7 blockers before attempting an upgrade
- →Auditing a monorepo's multiple tsconfig.json files in one pass, tool by tool
- →Understanding exactly what changed about a specific compiler option without reading the full TypeScript 7 changelog
- →Confirming a config is already clean after doing the recommended TypeScript 6.0 migration step first
Tips
- ◆The official migration advice is to upgrade to TypeScript 6.0 first and fix every deprecation warning it shows — that surfaces this exact same list as warnings instead of TypeScript 7's hard errors, with your existing compiler still working the whole time.
- ◆target: "es5" is probably the single most common hit — ES2015 is now the floor, so if you need pre-ES2015 output, that step has to move to a separate tool (Babel) after tsc compiles, not inside tsc itself.
- ◆module: "amd"/"umd" projects usually predate modern bundlers — if you're still on one of these, your bundler (webpack, Rollup, esbuild) needs to take over that responsibility, tsc no longer will.
Frequently asked questions
Does a clean result from this tool guarantee my project builds on TypeScript 7?
No — it only checks the specific tsconfig.json compiler-option removals. It can't detect the separate, and arguably bigger, migration risk: tools that programmatically use the TypeScript compiler API (ts-morph, some typescript-eslint versions) breaking because tsgo doesn't yet expose a compatible API. Check your dependencies for those separately.
Why does TypeScript 7 remove options that used to just warn?
The Go rewrite (Project Corsa) was a natural break point to finish cleanups that had been sitting as deprecation warnings for one or more releases — rather than carry legacy option-handling code into the new compiler indefinitely, the TypeScript team used the major version bump to finally hard-error on things 6.0 had already flagged as going away.
Is tsgo a different command I need to learn?
No — as of the TypeScript 7.0 release candidate, the command name reverted to the familiar tsc. tsgo/Project Corsa is the internal codename for the Go rewrite powering it, not a new CLI you need to switch your scripts to.