TypeScript 7.0 Release Candidate Explained: Why the Go Rewrite Changes Everything for Your Builds
TypeScript 7.0 has finally reached its release candidate stage, and the core shift here is not a collection of new language features. The project has been ported to Go, which means the compiler runs on native code and handles parallel workloads across multiple cores. Developers with large codebases or slow CI pipelines will notice the difference immediately, but the transition does require a few configuration adjustments to avoid unexpected build failures.
The Go Foundation and Speed Gains
TypeScript 7.0 replaces the decades-old JavaScript and TypeScript bootstrapped compiler with a Go implementation. The team did not rewrite the type checker from scratch, which keeps the semantic behavior identical to version 6.0. The speed boost comes from shared memory parallelism and native execution, cutting typical compile times by roughly ten percent of what teams were used to. Engineering groups have watched CI queues back up over slow type checks for years, and this shift finally tackles the bottleneck at the source. The compiler still parses, checks, and emits files, but it now splits the workload across threads instead of waiting for a single process to finish each step sequentially.
Installing TypeScript 7.0 and Running Side by Side
Getting the candidate version onto your machine requires the standard npm command. Running npm install -D typescript@rc drops the new binary into your node_modules folder. The team knows that stable programmatic APIs will not be ready until version 7.1, so they built a compatibility layer for projects that need to keep TypeScript 6.0 alongside the new release. The @typescript/typescript6 package exports a tsc6 executable and re-exports the old API. Projects that rely on peer dependencies like typescript-eslint should alias the old version in package.json to prevent import conflicts. This setup lets developers run the new compiler for daily work while legacy tooling continues to point at the stable 6.0 release without breaking the build.
New Flags and Watch Mode Improvements
The Go rewrite introduces explicit control over parallelization through new compiler flags. The --checkers flag sets the number of type-checking workers, while --builders controls how many project references compile at once. Increasing these numbers speeds up monorepos but multiplies memory usage, so setting both to four can easily spawn sixteen concurrent workers and overwhelm a standard laptop. The --singleThreaded flag remains available for debugging or for environments with strict resource limits. Watch mode also received a complete overhaul. The old polling logic got replaced with a file watcher ported from the Parcel bundler. This change eliminates the cross-platform stability issues that plagued Go developers for months and reduces CPU spikes during incremental builds. The watcher now respects the same configuration settings as the built-in VS Code extension, which means faster autocompletion and fewer phantom errors while typing.
Breaking Changes and Default Shifts
TypeScript 7.0 adopts the default settings from version 6.0, which means several configuration options now behave differently out of the box. The strict flag is enabled by default, module shifts to esnext, and target points to the current stable ECMAScript version. The types array defaults to an empty list instead of auto-loading all @types packages, which forces developers to declare exactly which type definitions they need. The rootDir also defaults to the project root, so projects that placed tsconfig.json outside their source folder must explicitly set it to preserve their directory structure. Several deprecated features now throw hard errors instead of warnings. Support for es5 targets, node10 module resolution, amd and umd module formats, and baseUrl path resolution has been dropped. JSDoc patterns that relied on Closure-style syntax or standalone postfix operators no longer work, and template literal types now handle Unicode code points correctly instead of splitting emoji into surrogate pairs. Developers who skip the migration steps will see immediate compilation failures, but updating tsconfig.json to match the new defaults takes only a few minutes.
Announcing TypeScript 7.0 RC
The Release Candidate for TypeScript 7.0 is now available!
The release candidate is ready for real world testing, and the team is actively tracking regressions on the Go issue tracker. Swapping in the new compiler will likely shave minutes off your daily builds, provided you update your configuration files first. Drop the package into your project, run the type checks, and report any weird behavior where it happens. Happy compiling.
