News

TypeScript 7.0 RC Moves Microsoft's Go Rewrite Into the Mainline Compiler

Microsoft's year-plus effort to move TypeScript from its JavaScript-based compiler implementation to a Go-based native codebase has reached Release Candidate status, with the new compiler now available through the standard TypeScript npm package.

The TypeScript team announced TypeScript 7.0 RC on June 18, describing it as a release built on "a completely new foundation." The new foundation is the Go port of the existing TypeScript codebase, an effort Microsoft first publicly announced on March 11, 2025, when Anders Hejlsberg wrote that the team had "begun work on a native port of the TypeScript compiler and tools."

That original announcement framed the project around performance at scale. Microsoft said at the time that the native implementation was expected to "drastically improve editor startup, reduce most build times by 10x, and substantially reduce memory usage." The June 2026 RC post keeps that performance framing, saying TypeScript 7.0 is "often about 10 times faster than TypeScript 6.0" through native code speed and shared-memory parallelism.

From Native Preview to Mainline TypeScript
The main practical change in the RC is packaging. Earlier previews were installed through @typescript/native-preview and used the temporary tsgo executable. With the RC, developers can install from the regular TypeScript package:

npm install -D typescript@rc

Microsoft says developers can then run tsc "just like with any prior version of TypeScript," with the RC reporting Version 7.0.1-rc. That is a shift from the May 2025 native-preview announcement, which said the new executable would eventually be renamed from tsgo to tsc and moved to the typescript package.

The TypeScript 7 nightly builds are still being published under @typescript/native-preview, with the binary still named tsgo. However, Microsoft said that once TypeScript 7 is published with the latest npm tag, it expects "all stable releases, major pre-releases, and nightlies" to be published under the typescript package.

What's Brand-New in the RC
Beyond the packaging move, the RC highlights several changes that were not fully available in earlier previews. The compiler now performs many steps in parallel, including parsing, type-checking and emitting. New controls include --checkers for type-checker workers, --builders for parallel project-reference builds and --singleThreaded for forcing single-threaded operation.

The RC also includes a rebuilt --watch mode. Microsoft said the team ported file-watching logic from Parcel's watcher to Go after finding pure polling too expensive for larger projects with many dependencies in node_modules. The post says the result is "significant resource improvements in --watch mode across platforms."

Editor work has also moved forward. The RC post says the new editor support is built on Language Server Protocol (LSP), which Microsoft said makes it easier to run in modern editors and tools such as Copilot CLI. It also says Visual Studio will automatically enable TypeScript 7 based on the user's workspace in the latest version of the editor.

Another developer-visible change involves template literal types. TypeScript 7.0 now preserves Unicode code points more naturally when inferring from template literal types, avoiding previous behavior that could split surrogate pairs.

Still Not Fully Ecosystem-Ready
The RC is close to production-ready as a command-line compiler, but Microsoft is drawing a line between the compiler and the programmatic API used by tooling. The post says: "Even though 7.0 RC is close to production-ready, we won't have a stable programmatic API available until at least several months from now with TypeScript 7.1."

Bottom line:

  • 7.0 = core platform complete (and fast)
  • 7.1 = ecosystem & API maturity

If you're just using TypeScript, 7.0 is essentially the full experience.

If you're building tools on top of TypeScript, 7.1 is when things really settle.

That matters for tools that import TypeScript as a library rather than simply running tsc. Microsoft specifically calls out tools such as typescript-eslint, which expect to import from typescript through peer dependencies.

To cover that transition, Microsoft published @typescript/typescript6, a compatibility package that provides a tsc6 executable and re-exports the TypeScript 6.0 API. That lets projects use TypeScript 7.0's tsc while other tooling continues to rely on the TypeScript 6.0 API.

Compatibility and Defaults
TypeScript 7.0 is intended to match TypeScript 6.0's type-checking and command-line behavior. Microsoft says code that compiles cleanly with TypeScript 6.0, with stableTypeOrdering enabled and without ignoreDeprecations, should compile identically in TypeScript 7.0.

However, TypeScript 7.0 adopts TypeScript 6.0's new defaults and turns TypeScript 6.0 deprecations into hard errors. The RC post says the most "surprising" configuration changes may be the new rootDir and types defaults. Other changes include strict being enabled by default, module defaulting to esnext, and stableTypeOrdering being enabled by default with no option to disable it.

TypeScript 6.0 was positioned as the bridge release for this change. In the TypeScript 6.0 announcement, Microsoft said TypeScript 6.0 was intended to be the last release based on the current JavaScript codebase, while TypeScript 7.0 and later would use the Go-based native codebase.

What's Next
Microsoft said its current plan is to release TypeScript 7.0 "within the next month." Until then, the team said it is focusing on release coordination, reported regressions and future API capabilities in TypeScript 7.1.

The short version for developers is that TypeScript 7.0 is now ready for broader testing as the normal tsc compiler, but the ecosystem transition will continue beyond 7.0. Projects that rely only on command-line compilation can start testing the RC now. Tool authors and projects with TypeScript API dependencies may need to keep TypeScript 6.0 in place through the compatibility package until TypeScript 7.1 or later delivers stable API support.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • VS Code 1.125 Adds Copilot Spend Meter After Billing Shock

    VS Code 1.125 adds in-editor visibility into additional Copilot budget usage as GitHub's AI-credit billing model continues to draw developer scrutiny.

  • TypeScript 7.0 RC Moves Microsoft's Go Rewrite Into the Mainline Compiler

    Microsoft's Go-based TypeScript rewrite has reached Release Candidate status, moving from a separate native-preview package into the regular TypeScript npm package while leaving some ecosystem-facing API work for TypeScript 7.1 or later.

  • Microsoft Highlights Visual Studio Live! Event Lineup and Longtime Developer Community Role

    A Microsoft MVP Blog post on Visual Studio Live!'s longevity arrives as the 2026 conference series continues with upcoming stops at Microsoft HQ, San Diego and Orlando.

  • Using Local AI to Cut Copilot Usage-Based Billing Shock

    After being gobsmacked by the new billing plan using almost all my monthly credits in one or two days, I tried pushing some Copilot-style coding work onto local models in VS Code. What I found was less "free AI" and more "pick your pain": cloud charges on one side, heavy local resource use and long waits on the other.

Subscribe on YouTube