TypeScript 7 is a native port: the compiler and language service written in TypeScript (internal codename Strada, versions up to 6.x) were ported to Go (Corsa). The team's stated aim was to keep it faithful: same logic and structure, so results stay consistent between the two. Go was chosen because idiomatic Go resembles the existing code, giving a structurally similar codebase that makes porting changes feasible, with memory-layout control and a garbage collector that costs little for a batch compiler (from the team's "Why Go?" discussion).
Gains come from native code plus parallelism: 7.0 parses, type-checks and emits in parallel. The announcement reports 8x to 12x faster full builds on large open-source projects (vscode 125.7s to 10.6s) and an editor that loads far faster.
What it means in practice:
- Install and CLI.
npm i -D typescriptnow gives a nativetsc(my 7.0.2 install used a per-platform binary package). The previews used@typescript/native-previewandtsgo; nightlies move totypescript@next. New flags:--checkers,--builders,--singleThreaded. - Same language, 6.0 defaults. 7.0 adopts 6.0's defaults (
strict: true,types: [], …) and turns 6.0's deprecations into hard errors, such astarget: es5andmoduleResolution: node10. - Editor. The language server speaks the Language Server Protocol instead of the old
tsserverprotocol. - No JavaScript API in 7.0. Tools that import
typescript(typescript-eslint, Volar-based Vue/Astro/Svelte tooling) stay on 6.0, side by side via@typescript/typescript6(which providestsc6). A new API is expected in 7.1.
For migration I would first move to 6.0, fix its deprecations (--stableTypeOrdering helps compare outputs), then switch the CLI to 7.