Verdict
On TypeScript 7.1.0-beta, ts-jest, typescript-eslint, ts-node and TypeDoc failed exactly as on 7.0, and so did NestJS, Angular, vue-tsc, svelte-check and astro check. The beta does ship a compiler API, but at new entry points (typescript/sync and typescript/async) that no tool uses yet. The side-by-side setup with TypeScript 6 fixed every one I re-ran.
Tested on
- TypeScript
- 7.1.0-beta (October 20), side-by-side with 6.0.3
- Tools
- ts-jest 29.4.15, typescript-eslint 8.72.1, ESLint 10.14.0, ts-node 10.9.2, TypeDoc 0.28.20
- Frameworks
- NestJS 12.3.2 (CLI 12.0.11), Angular 22.2.4, vue-tsc 3.3.14, svelte-check 4.7.7, astro 7.4.4 + @astrojs/check 0.9.12
- Node
- 24.14.0 (Angular: 24.21.0)
- OS
- Windows 11 Pro
Contents
TypeScript 7.0 shipped in July without a JavaScript API, and most of the tools that broke on it pointed to 7.1: the NestJS CLI says the compiler API “is expected to return in 7.1”, and typescript-eslint tracks “support for TS >=7.1”. The 7.1 beta came out on October 20, 2026. I installed it into the same kinds of projects that failed on 7.0.2 and ran them again on October 31.
The results
| Tool or framework | On TypeScript 7.1.0-beta | With TypeScript 6 alongside |
|---|---|---|
| ts-jest 29.4.15 | ❌ “does not expose the JavaScript compiler API required by ts-jest” | ✅ |
| typescript-eslint 8.72.1 | ❌ “typescript-eslint does not support TS 7.0.” | ✅ |
| ts-node 10.9.2 | ❌ Cannot read properties of undefined (reading 'fileExists') |
✅ |
| TypeDoc 0.28.20 | ❌ Cannot read properties of undefined (reading 'PropertyDeclaration') |
✅ |
NestJS 12.3.2 (nest build) |
❌ “does not expose the programmatic compiler API” | ✅ on TypeScript 6 |
Angular 22.2.4 (ng build) |
❌ Cannot read properties of undefined (reading 'Error') |
✅ |
| vue-tsc 3.3.14 | ❌ Package subpath './lib/tsc' is not defined by "exports" |
✅ |
| svelte-check 4.7.7 | ❌ “requires both TypeScript 7 and TypeScript 6” | ✅ |
| astro check (@astrojs/check 0.9.12) | ❌ “does not currently support TypeScript 7.0” | not re-run |
Nothing that broke on TypeScript 7.0 works on the 7.1 beta. Every error is the one 7.0.2 gave. The fix is still to keep TypeScript 6 as typescript and install 7 under another name:
npm install -D "@typescript/native@npm:typescript@7.1.0-beta" "typescript@npm:@typescript/typescript6@^6.0.2"For the frameworks I used svelte-check’s own suggestion, which is the same idea with a plain TypeScript 6 install next to the 7.1 alias. Angular’s ng build completed (Application bundle generation complete), and vue-tsc and svelte-check exited with no errors. For NestJS, the app as generated, on TypeScript 6.0.3, built.
Why 7.1 didn’t fix them: the API moved
The 7.1 beta does have a compiler API. It just isn’t where the old one was. A plain require('typescript') on 7.1.0-beta returns an object with two keys:
require("typescript") keys: version, versionMajorMinor | version 7.1.0-beta
ts.createProgram: undefined | ts.transpileModule: undefined
Every tool in the table calls something like ts.createProgram on that import, finds undefined, and fails. The new API lives at two new entry points in the same package, typescript/sync and typescript/async. Both export an API class, a Checker and a LanguageService. I tried it on a file with a deliberate type error:
import { API } from 'typescript/sync';
const api = new API({ cwd: process.cwd() });
const program = api.createProgram(['probe.ts'], { strict: true, noEmit: true });
console.log(program.getSemanticDiagnostics());
It worked: one diagnostic, code 2322, “Type ‘string’ is not assignable to type ‘number’”, and api.transpileModule() turned TypeScript into JavaScript as before. It’s not a drop-in replacement, though. The diagnostic came back with text, startPosition and endPosition where TypeScript 6 has messageText, start and length, so code written against the old API needs changes before it runs on the new one. That’s why the tools are still waiting.
The messages haven’t caught up
Two errors still name the old version. typescript-eslint, running on 7.1.0-beta, printed:
typescript-eslint does not support TS 7.0.
And the NestJS CLI’s message still says the API is coming in the version it’s running on:
Error The installed TypeScript version (7.1.0-beta) 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.
Both just mean “TypeScript 7 isn’t supported yet”. Don’t read them as a version mismatch you can fix by moving to a different 7.x.
svelte-check and Astro point to new options
svelte-check 4.7.7’s error now names flags. With TypeScript 6 and the 7.1 alias installed side by side, svelte-check --tsgo ran and caught the same type error as plain svelte-check. The other one, --tsgo-experimental-api, crashed on the 7.1 beta:
TypeError: Invalid filesystem callback 'directoryExists': expected a function or a supported serverFS sentinel
svelte-check failed
Astro 7.4.4’s astro check still refuses TypeScript 7, and now adds that astro check “will be deprecated in a future Astro release”. Its message points to an experimental package, @astrojs/ts-content-mapper, for type-checking Astro files with TypeScript 7.1+. I didn’t test that package here.
Should you try the 7.1 beta?
- If you use any tool in the table, there’s nothing to gain yet. Stay on TypeScript 6, or use the side-by-side setup if you want the faster
tsc. - If you write a tool that imports
typescript, the beta is the first build to test against. The new API is attypescript/syncandtypescript/async. - Watch the tool, not TypeScript. The fix will come from new ts-jest, typescript-eslint and Nest CLI releases that support the new API, and those can arrive before or after 7.1 itself. I’ll re-test this table when 7.1 is final.
How this was tested
October 31, 2026, on Windows 11 Pro with Node 24.14.0 (Angular CLI 22.2.5 needs at least 24.15.0, so Angular ran on Node 24.21.0). The tools ran in one small project with a source file, a Jest test, an ESLint config with type-checked rules and a TypeDoc build, first with typescript@7.1.0-beta alone (installed with --legacy-peer-deps, since npm’s strict install refuses it: ts-node’s peer range is typescript@">=2.7", and npm doesn’t count a beta as matching a range), then with the two aliases. NestJS and Angular were new projects from their CLIs, vue-tsc, svelte-check and astro check minimal projects with one component each. Error text is copied from the runs. The scripts are public.
— N.K., end of entry No.092