Microsoft is making significant strides in improving TypeScript by developing a native implementation based on Google’s Go language. This initiative, which was announced on March 11, aims to significantly enhance the performance of TypeScript in various areas such as editor startup speed, build times, and memory usage. By transitioning the TypeScript compiler, tools, and code base from JavaScript to Go, Microsoft intends to make it easier for developers to work with large-scale codebases. This move promises to address many of the challenges developers face with TypeScript’s performance, especially when handling complex or large projects.
The Go-based implementation of TypeScript is expected to offer several notable improvements. Microsoft has indicated that developers will experience an 8x faster project load time, along with immediate and comprehensive error listings across entire projects. Furthermore, the responsiveness of language service operations, such as code completion, quick information, “go to definition,” and “find all references,” will be greatly enhanced. These optimizations will make it easier for developers to work more efficiently and effectively, particularly in larger applications. The new version of TypeScript will also support more advanced refactoring capabilities and provide deeper insights that were previously too costly to compute.
One of the most significant pain points for developers using the current, JavaScript-based TypeScript is the performance issues that arise when working with large-scale applications. Microsoft acknowledges this challenge and believes that the Go-based implementation will address these concerns, making it much easier to scale TypeScript for complex projects. By moving to Go, Microsoft hopes to drastically reduce the limitations currently faced by developers and improve the overall developer experience, especially for those working on large codebases.
Microsoft’s plan for the Go-based TypeScript includes a preview of the command-line type-checking feature in Go by mid-2025, with a fully-featured release expected by the end of the year. Developers will be able to experiment with the Go code from a new working repository, which will be licensed under the same Apache License 2.0 as the current TypeScript code base. Meanwhile, the JavaScript-based TypeScript will continue its development into the 6.x series. TypeScript 6.0 will introduce some deprecations and breaking changes to align with the upcoming native implementation, while TypeScript 7.0 will mark the official release of the Go-based TypeScript. However, Microsoft anticipates that many developers may continue using TypeScript 6.0 for a while, particularly if their projects rely on certain legacy configurations or API features, until the Go-based version reaches sufficient maturity.