Verdict
Next.js 16.3.6 built and type-checked on plain TypeScript 7.0.2. Angular 22.2, Vue with vue-tsc 3.3 and NestJS 12 all failed, and all three built again on Microsoft's side-by-side setup, with tsc still on 7.0.2. Nuxt, Svelte and Astro still built on 7, but their type-check commands refused it until TypeScript 6 was installed alongside.
Tested on
- Next.js
- 16.3.6
- Angular
- 22.2.0
- Vue
- 3.5.43, vue-tsc 3.3.11, Vite 8.3.1
- NestJS
- 12.1.1, CLI 12.0.8
- Svelte
- SvelteKit 2.63, svelte-check 4.6.0
- Astro
- 7.3.5, @astrojs/check 0.9.10
- Nuxt
- 4.5.2, vue-tsc 3.3.11
- TypeScript
- as generated / 7.0.2 / side-by-side
- OS
- Windows 11 Pro
Contents
- The results01
- Next.js and TypeScript 7: works as it is02
- Angular and TypeScript 7: a crash inside the compiler03
- Vue and TypeScript 7: vue-tsc can’t find TypeScript’s tsc04
- NestJS and TypeScript 7: the CLI says it directly05
- Nuxt and TypeScript 7: the build works, nuxi typecheck doesn’t06
- Svelte and TypeScript 7: svelte-check has a TypeScript 7 mode07
- Astro and TypeScript 7: astro check refuses, the build doesn’t08
- The setup that fixed the rest09
- Should you upgrade?10
- How this was tested11
- Limits of this test12
TypeScript 7 is the compiler rewritten in Go, and it shipped without the JavaScript API that many tools call into. Frameworks that run their own type-checking or compiling through that API can’t use it. I generated a fresh project with each framework’s own starter, switched it to TypeScript 7.0.2, and ran its build.
The results
| Framework | As generated | Plain TypeScript 7.0.2 | Side-by-side setup |
|---|---|---|---|
| Next.js 16.3.6 | ✅ | ✅ | not needed |
| Angular 22.2.0 | ✅ | ❌ reading 'Error' |
✅ |
| Vue 3.5 + vue-tsc 3.3.11 | ✅ | ❌ './lib/tsc' is not defined |
✅ |
| NestJS 12 (CLI 12.0.8) | ✅ | ❌ “does not expose the programmatic compiler API” | ✅ |
| SvelteKit 2.63 + svelte-check 4.6 | ✅ | ❌ type-check only: “requires both TypeScript 7 and TypeScript 6” | ✅ |
| Astro 7.3 + astro check | ✅ | ❌ type-check only: “does not currently support TypeScript 7.0” | ✅ |
| Nuxt 4.5 + nuxi typecheck | ✅ | ❌ type-check only: './lib/tsc' is not defined |
✅ |
Next.js worked on TypeScript 7 with no changes. Angular, Vue and NestJS failed their build; Nuxt, Svelte and Astro still built, but their type-check commands refused TypeScript 7. All six worked again with TypeScript 6 installed alongside 7, and tsc still reporting 7.0.2.
Next.js and TypeScript 7: works as it is
A project from create-next-app 16.3.6 built on plain TypeScript 7.0.2 with the generated config, no extra setting. Its type-check step took 1.2 seconds, against 3.8 seconds on the TypeScript 5.9.3 it was generated with (one build each).
To make sure it was really type-checking and not skipping, I added a deliberate type error:
app/page.tsx(70,7): error TS2322: Type 'string' is not assignable to type 'number'.
Failed to type check.
Angular and TypeScript 7: a crash inside the compiler
ng build and ng serve both failed in under half a second:
X [ERROR] Angular compilation initialization failed. [plugin angular-compiler]
TypeError: Cannot read properties of undefined (reading 'Error')
It’s not the old “The Angular Compiler requires TypeScript” message, and the real cause is hidden behind a second failure. The full breakdown, including the Node.js version the Angular 22 CLI needs first: Angular compilation initialization failed on TypeScript 7.
Vue and TypeScript 7: vue-tsc can’t find TypeScript’s tsc
The generated npm run build runs vue-tsc --build for type-checking, and that step crashed:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tsc' is not defined by "exports" in ...\node_modules\typescript\package.json
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
ERROR: "type-check" exited with 1.
vue-tsc loads TypeScript’s own tsc from inside the typescript package, and TypeScript 7’s package doesn’t expose that file.
NestJS and TypeScript 7: the CLI says it directly
nest build stopped with a clear message that names the cause:
Error The installed TypeScript version (7.0.2) does not expose the programmatic compiler API that the Nest CLI requires. TypeScript 7.0 ships the "tsc" executable only; the compiler API is expected to return in 7.1. Please install TypeScript 6 (e.g. "npm i -D typescript@^6") until then.
Nuxt and TypeScript 7: the build works, nuxi typecheck doesn’t
A nuxi init project (Nuxt 4.5.2, minimal template), with vue-tsc and typescript added as Nuxt’s type-check needs, still built on plain TypeScript 7.0.2. nuxi typecheck failed, because it runs vue-tsc, with the same error as the Vue project above:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tsc' is not defined by "exports" in ...\node_modules\typescript\package.json
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
Svelte and TypeScript 7: svelte-check has a TypeScript 7 mode
A npx sv create project (SvelteKit 2.63) still built on plain TypeScript 7.0.2. Its type-check, npm run check (svelte-check 4.6.0), stopped with a message that names its own fix:
Error: TypeScript 7 support currently requires both TypeScript 7 and TypeScript 6 installed in your project, and requires using the --tsgo or --tsgo-experimental-api flag. You can setup both version with an npm alias via the following command.
npm install --save-dev typescript@~6 @typescript/native@npm:typescript@7
Run the command it prints, delete node_modules, install again, then check with the --tsgo flag:
npx svelte-check --tsconfig ./tsconfig.json --tsgoAstro and TypeScript 7: astro check refuses, the build doesn’t
A npm create astro project (Astro 7.3.5, minimal template) with @astrojs/check added built normally on TypeScript 7.0.2. Only astro check stopped:
[ERROR] [check] astro check does not currently support TypeScript 7.0. To continue using astro check, install TypeScript 6 instead.
The setup that fixed the rest
The same fix worked for Angular, Vue, Nuxt, NestJS and Astro (Svelte’s own command above does the same job). It’s the one Microsoft describes in the TypeScript 7.0 announcement: TypeScript 7 under another name for tsc, and a TypeScript 6 compatibility package where frameworks look for typescript.
npm install -D "@typescript/native@npm:typescript@7.0.2" "typescript@npm:@typescript/typescript6@^6.0.2"Then delete node_modules, install again, and confirm:
npx tsc --versionIt should print Version 7.0.2. In an earlier test, switching without the clean reinstall left tsc quietly on the old version.
Should you upgrade?
- Next.js: in this test, yes. It built, caught type errors, and the type-check was faster.
- Svelte: yes, if you install TypeScript 6 alongside and use
--tsgo; it’s the only checker here with a TypeScript 7 mode. - Astro: the build is fine; for
astro check, keep TypeScript 6 installed alongside. - Nuxt: the build is fine; for
nuxi typecheck, same as Vue: TypeScript 6 alongside, until vue-tsc supports 7. - Angular, Vue, NestJS: not plainly. Use the side-by-side setup if you want
tsc7 for your own scripts, or stay on TypeScript 6. NestJS’s own message expects the compiler API to return in TypeScript 7.1.
Tools rather than frameworks (ts-jest, typescript-eslint, ts-node, TypeDoc, ts-loader and more) are in a separate test: Upgrading to TypeScript 7? 9 tools tested. For the config side of the upgrade, see the TypeScript 7 migration guide.
How this was tested
Each project came from its own official starter: create-next-app, ng new --defaults, create-vue with TypeScript, nest new, npx sv create (minimal, TypeScript) and npm create astro (minimal, plus @astrojs/check) and nuxi init (minimal, plus vue-tsc), using npm. Each was built as generated, then with typescript@7.0.2, then with the side-by-side setup after deleting node_modules. Angular commands ran under Node 24.15.0 through npx, because the Angular 22 CLI refuses Node 24.14.0. The others ran on Node 24.14.0. Nuxt, Svelte and Astro were tested on September 29, the others on September 28. Every error and success line above is copied from those runs.
Limits of this test
One fresh starter project per framework, on Windows. A large app can use features the starter doesn’t, like custom Angular builders, Nuxt on top of Vue, Astro integrations, or Next.js plugins that call the TypeScript API themselves. The timings are single builds, so read the Next.js speed-up as a direction, not a benchmark.
— N.K., end of entry No.030