Skip to content
Nilay Kabariya

Entry No.030·Tested·Updated ·5 min read

Does Next.js, Angular, Vue or NestJS work with TypeScript 7?

Next.js, Nuxt, Angular, Vue, NestJS, Svelte and Astro starters on TypeScript 7.0.2. One worked as it was; six broke. The exact errors, and the fixes.

by Nilay#typescript#nextjs#angular#vue#nuxt#nestjs#svelte#astroTESTED

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
  1. The results01
  2. Next.js and TypeScript 7: works as it is02
  3. Angular and TypeScript 7: a crash inside the compiler03
  4. Vue and TypeScript 7: vue-tsc can’t find TypeScript’s tsc04
  5. NestJS and TypeScript 7: the CLI says it directly05
  6. Nuxt and TypeScript 7: the build works, nuxi typecheck doesn’t06
  7. Svelte and TypeScript 7: svelte-check has a TypeScript 7 mode07
  8. Astro and TypeScript 7: astro check refuses, the build doesn’t08
  9. The setup that fixed the rest09
  10. Should you upgrade?10
  11. How this was tested11
  12. 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 --tsgo

Astro 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 --version

It 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 tsc 7 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

Useful? Pass it on:Post on XFollow @EmotionalMatter

Related entries

  1. No.044

    SvelteKit 3 migration, tested: what sv migrate misses

    sv migrate sveltekit-3 upgraded every package and moved the config correctly, but left three removed options in place, so the first build failed three times in a row. Worse, it rewrote a working {base}/about link into one that 404s, and that passed both the build and svelte-check.

    TESTED4 min
  2. No.029

    Angular compilation initialization failed on TypeScript 7

    Angular 22 crashes on TypeScript 7 with reading 'Error', not the usual version warning. What actually failed, and the setup that builds with tsc 7, tested.

    > Application bundle generation failed. [0.412 seconds]

    FIXED2 min
  3. No.054

    Next.js 16.3 vulnerabilities: which version is patched?

    16.3.0 carries 9 published advisories (3 critical) and 16.3.7 still carries 6, because the September 30 fixes skipped it. The upgrade built cleanly on every version I tried. The traps are in the tools: npm audit fix jumps you a minor version or does nothing at all, and next upgrade crashes on Windows.

    TESTED4 min

Post card · Newsletter

Get the next fix in your inbox.

One short email when a new entry is published. No spam, never shared, and you can leave any time.

— Nilay

or follow by RSSor on X

By subscribing you agree to the privacy note. One click to leave.

tip: paste the exact error text