TypeScript 7 and Angular: what's faster today, and what waits for 7.1
· Menno-Paul Schreuder
TypeScript 7 type-checks a real Angular monorepo about 8x faster. The Angular build itself has to wait for 7.1. Measured, with the setup to run both versions side by side today.
- Angular
TypeScript 7.0, released on 8 July 2026, is the native rewrite of the compiler in Go. Microsoft's headline number: a full build of VS Code went from 126 to 11 seconds (announcement (opens in a new tab)). But 7.0 ships without a programmatic API, and Angular's compiler is built on exactly that API. So what does TypeScript 7 do for an Angular project today? I measured it on a real one.
The setup
- Codebase: Ghostfolio (opens in a new tab), an open-source wealth-management app. An Nx monorepo with an Angular 22 front end and a NestJS 11 back end, commit
df935e6(2 October 2026). About 80,000 lines of TypeScript, tests excluded: 38,000 in the API, 20,000 in the client and 22,000 in shared libraries. - Versions: TypeScript 6.0.3 (what Ghostfolio uses) against TypeScript 7.0.2.
- Machine: Apple M3 Pro, 12 cores, 36 GB, Node 22.
- Method:
tsc --noEmit --incremental false, 7 runs per combination, median reported; builds 3 runs each. Both versions report zero errors on both projects, so they do identical work.
The results
| What | TypeScript 6.0.3 | TypeScript 7.0.2 | Speed-up |
|---|---|---|---|
| Type-check API (NestJS) | 2.96 s | 0.38 s | 7.8x |
| Type-check client (Angular) | 2.05 s | 0.26 s | 7.9x |
| Angular build, development (1 language) | 7.06 s | not possible | |
| Angular build, production (14 languages) | 11.62 s | not possible |
The runs barely varied: the slowest TypeScript 7 run of the API took 0.39 s, the fastest 0.36 s.
Why the Angular build can't use it yet
Angular's compiler does not just call tsc. It builds on TypeScript's programmatic API: functions like createProgram, transform and the AST factory that it uses to analyse and rewrite your code. In TypeScript 7.0 those aren't there. require("typescript") on 7.0.2 exports only the version number, with experimental APIs under typescript/unstable/*.
Microsoft is explicit about it: 7.0 does not ship with an API, a new one is expected in 7.1, and until then tools that need it, Angular and typescript-eslint among them, can only rely on TypeScript 6.
The speed-up is fixed, the gain grows with your codebase
About 8x is impressive, but on a codebase this size it saves about 4.4 seconds per CI run that type-checks both projects. Whether that matters depends on how big your codebase is and how often you run it. Microsoft's own measurement on VS Code, a far larger codebase, went from minutes to seconds. Multiply your own type-check time by the number of CI runs per day across your team and you have your answer.
I deliberately don't extrapolate these numbers into a formula: type-check time does not grow linearly with lines of code, and a formula would suggest precision these measurements don't have. Time your own type-check with both versions; with the setup below that takes five minutes.
Running TypeScript 6 and 7 side by side
Microsoft publishes a compatibility package, @typescript/typescript6, that contains TypeScript 6 with its full API and a tsc6 command. With two package aliases, both versions live in one project:
{
"devDependencies": {
"@typescript/native": "npm:typescript@^7.0.2",
"typescript": "npm:@typescript/typescript6@^6.0.2"
}
}
What you get:
tscruns TypeScript 7, for fast type-checking.tsc6runs TypeScript 6, as a fallback.require("typescript")still returns the TypeScript 6 API, so the Angular compiler, typescript-eslint and other tools keep working.
I applied this to Ghostfolio: the Angular production build ran as before (12.2 seconds), while tsc type-checked both projects with TypeScript 7. It works the same with pnpm; I checked it with pnpm 12. One detail: the compatibility package is version 6.0.2 and contains TypeScript 6.0.3.
Where it pays off today
- Standalone type-check steps in CI (
tsc --noEmit). For an Angular project, mind what that does and doesn't cover: plaintscchecks your TypeScript, not your component templates. Template type-checking is done by the Angular compiler, so this is a fast early check, not a replacement for the build. - The non-Angular parts of a monorepo: a NestJS back end, shared libraries, Node scripts and tooling.
- Not yet: the Angular build itself, the Angular language service in your editor, and typescript-eslint.
What changes with 7.1
TypeScript 7.1 is expected to bring the programmatic API back, and the Angular team has shared plans (opens in a new tab) to build on it. The 7.1 iteration plan (opens in a new tab) puts the stable release on 24 November 2026. The team has since pushed the beta back by about two weeks and hasn't confirmed yet whether the final date moves with it. Then the question becomes how much of the Angular build itself speeds up. When 7.1 ships, I'll run the same measurement on the same codebase and update this post.
Reproduce it
git clone https://github.com/ghostfolio/ghostfolio.git && cd ghostfolio
git checkout df935e6
npm ci --ignore-scripts && npx prisma generate
npm i -D "@typescript/native@npm:typescript@^7.0.2" "typescript@npm:@typescript/typescript6@^6.0.2" --ignore-scripts
npx tsc6 --noEmit --incremental false -p apps/api/tsconfig.app.json
npx tsc --noEmit --incremental false -p apps/api/tsconfig.app.json
Installing with --ignore-scripts is deliberate: an unfamiliar repository doesn't get to run install scripts on my machine. Why that matters is in npm supply-chain attacks: which defences actually stop them.