TypeScript

The official blog of the TypeScript team.

Latest posts

Progress on TypeScript 7 – December 2025
Dec 2, 2025
Post comments count 19
Post likes count 19

Progress on TypeScript 7 – December 2025

Daniel Rosenwasser
Daniel Rosenwasser

Earlier this year, the TypeScript team announced that we've been porting the compiler and language service to native code to take advantage of better raw performance, memory usage, and parallelism. This effort (codenamed "Project Corsa", and soon "TypeScript 7.0") has been a significant undertaking, but we've made big strides in the past few months. We're excited to give some updates on where we are, and show you how "real" the new TypeScript toolset is today. We also have news about our upcoming roadmap, and how we're prioritizing work on TypeScript 7.0 to drive our port to completion. Editor Support and L...

Announcing TypeScript 5.9
Aug 1, 2025
Post comments count 2
Post likes count 10

Announcing TypeScript 5.9

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the release of TypeScript 5.9! If you're not familiar with TypeScript, it's a language that builds on JavaScript by adding syntax for types. With types, TypeScript makes it possible to check your code to avoid bugs ahead of time. The TypeScript type-checker does all this, and is also the foundation of great tooling in your editor and elsewhere, making coding even easier. If you've written JavaScript in editors like Visual Studio and VS Code, TypeScript even powers features you might already be using like completions, go-to-definition, and more. You can learn more about Type...

Announcing TypeScript 5.9 RC
Jul 25, 2025
Post comments count 1
Post likes count 5

Announcing TypeScript 5.9 RC

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the Release Candidate (RC) of TypeScript 5.9! To get started using the Release Candidate, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.9! What's New Since the Beta? A few reported fixes have been made since the 5.9 beta, including the restoration of to the DOM library. Additionally, we have added a section about Notable Behavioral Changes. Minimal and Updated For a while, the TypeScript compiler has supported an flag that can create a within the current directory. In the l...

Announcing TypeScript 5.9 Beta
Jul 8, 2025
Post comments count 1
Post likes count 8

Announcing TypeScript 5.9 Beta

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of TypeScript 5.9 Beta. To get started using the beta, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.9! Minimal and Updated For a while, the TypeScript compiler has supported an flag that can create a within the current directory. In the last few years, running created a very "full" , filled with commented-out settings and their descriptions. We designed this with the intent of making options discoverable and easy to toggle. However, given external feedback (a...

Announcing TypeScript Native Previews
May 22, 2025
Post comments count 6
Post likes count 23

Announcing TypeScript Native Previews

Daniel Rosenwasser
Daniel Rosenwasser

This past March we unveiled our efforts to port the TypeScript compiler and toolset to native code. This port has achieved a 10x speed-up on most projects - not just by using a natively-compiled language (Go), but also through using shared memory parallelism and concurrency where we can benefit. Since then, we have made several strides towards running on large complex real-world projects. Today, we are excited to announce broad availability of TypeScript Native Previews. As of today, you will be able to use npm to get a preview of the native TypeScript compiler. Additionally, you'll be able to use a previe...

A 10x Faster TypeScript
Mar 11, 2025
Post comments count 84
Post likes count 191

A 10x Faster TypeScript

Anders Hejlsberg
Anders Hejlsberg

Today I'm excited to announce the next steps we're taking to radically improve TypeScript performance. The core value proposition of TypeScript is an excellent developer experience. As your codebase grows, so does the value of TypeScript itself, but in many cases TypeScript has not been able to scale up to the very largest codebases. Developers working in large projects can experience long load and check times, and have to choose between reasonable editor startup time or getting a complete view of their source code. We know developers love when they can rename variables with confidence, find all referen...

Announcing TypeScript 5.8
Feb 28, 2025
Post comments count 1
Post likes count 14

Announcing TypeScript 5.8

Daniel Rosenwasser
Daniel Rosenwasser

Today we're excited to announce the release of TypeScript 5.8! If you're not familiar with TypeScript, it's a language that builds on top of JavaScript by adding syntax for types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos, issues with and , and more. Types also power TypeScript's editor tooling like the auto-completion, code navigation, and refactorings that you might see in editors like Visual Studio and VS Code. In fact, TypeScript and its ecosystem powers the JavaScript experience in both of those editors as well! To get sta...

Announcing TypeScript 5.8 RC
Feb 13, 2025
Post comments count 0
Post likes count 4

Announcing TypeScript 5.8 RC

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the Release Candidate (RC) of TypeScript 5.8! To get started using the Release Candidate, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.8! What's New Since the Beta? Since our beta release, we have had to pull back some work on how functions with conditional return types are checked. Based on some of the limitations and changes we wanted to make, we decided to iterate on the feature with the goal of shipping it in TypeScript 5.9. However, as part of this work, we added more granular checks for branches within return ...

Announcing TypeScript 5.8 Beta
Jan 29, 2025
Post comments count 1
Post likes count 12

Announcing TypeScript 5.8 Beta

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of TypeScript 5.8 Beta. To get started using the beta, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.8! Checked Returns for Conditional and Indexed Access Types Consider an API that presents a set of options to a user: The intent with is that it shows a UI element that can allow selecting either a single option or multiple options. When it does this is determined by the parameter. When is , the return type of should be , and when it is , the return type should be . The problem is that the typ...

Announcing TypeScript 5.7
Nov 22, 2024
Post comments count 2
Post likes count 11

Announcing TypeScript 5.7

Daniel Rosenwasser
Daniel Rosenwasser

Today we excited to announce the availability of TypeScript 5.7! If you're not familiar with TypeScript, it's a language that builds on JavaScript by adding syntax for type declarations and annotations. This syntax can be used by the TypeScript compiler to type-check our code, and it can also be erased to emit clean, idiomatic JavaScript code. Type-checking is helpful because it can catch bugs in our code ahead of time, but adding types to our code also makes it more readable and allows tools like code editors to give us powerful features like auto-completion, refactorings, find-all-references, and more. TypeScr...

Announcing TypeScript 5.7 RC
Nov 8, 2024
Post comments count 0
Post likes count 9

Announcing TypeScript 5.7 RC

Daniel Rosenwasser
Daniel Rosenwasser

Today we are announcing the availability of the release candidate of TypeScript 5.7. To get started using the RC, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.7! Checks for Never-Initialized Variables For a long time, TypeScript has been able to catch issues when a variable has not yet been initialized in all prior branches. Unfortunately, there are some places where this analysis doesn't work. For example, if the variable is accessed in a separate function, the type system doesn't know when the function will be called, and instead takes an &quot...

Announcing TypeScript 5.7 Beta
Oct 9, 2024
Post comments count 5
Post likes count 5

Announcing TypeScript 5.7 Beta

Daniel Rosenwasser
Daniel Rosenwasser

Today we are announcing the availability of TypeScript 5.7 Beta. To get started using the beta, you can get it through npm with the following command: Let's take a look at what's new in TypeScript 5.7! Checks for Never-Initialized Variables For a long time, TypeScript has been able to catch issues when a variable has not yet been initialized in all prior branches. Unfortunately, there are some places where this analysis doesn't work. For example, if the variable is accessed in a separate function, the type system doesn't know when the function will be called, and instead takes an "optimistic" ...

Announcing TypeScript 5.6
Sep 9, 2024
Post comments count 1
Post likes count 19

Announcing TypeScript 5.6

Daniel Rosenwasser
Daniel Rosenwasser

Today we're excited to announce the release of TypeScript 5.6! If you're not familiar with TypeScript, it's a language that builds on top of JavaScript by adding syntax for types. Types describe the shapes we expect of our variables, parameters, and functions, and the TypeScript type-checker can help catch issues like typos, missing properties, and bad function calls before we even run our code. Types also power TypeScript's editor tooling like the auto-completion, code navigation, and refactorings that you might see in editors like Visual Studio and VS Code. In fact, if you write JavaScript in either of th...

Announcing TypeScript 5.6 RC
Aug 23, 2024
Post comments count 0
Post likes count 3

Announcing TypeScript 5.6 RC

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of the release candidate of TypeScript 5.6. To get started using the RC, you can get it through npm with the following command: Here's a quick list of what's new in TypeScript 5.6! What's New Since the Beta? Since TypeScript 5.6 beta, we reverted a change around how TypeScript's language service searched for files. Previously the language service would keep walking up looking for every possible project file named that might contain a file. Because this could lead to opening many referenced projects, we reverted the beh...

Announcing TypeScript 5.6 Beta
Jul 26, 2024
Post comments count 2
Post likes count 4

Announcing TypeScript 5.6 Beta

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of TypeScript 5.6 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: Here's a quick list of what's new in TypeScript 5.6! Disallowed Nullish and Truthy Checks Maybe you've written a regex and forgotten to call on it: or maybe you've accidentally written (which creates an arrow function) instead of (the greater-than-or-equal-to operator): or maybe you've tried to use a default value with , but mixed up the precedence of and a comparison operator like : or...

Announcing TypeScript 5.5
Jun 20, 2024
Post comments count 5
Post likes count 10

Announcing TypeScript 5.5

Daniel Rosenwasser
Daniel Rosenwasser

Today we're excited to announce the release of TypeScript 5.5! If you're not familiar with TypeScript, it's a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos, issues with and , and more. Types also power TypeScript's editor tooling like the auto-completion, code navigation, and refactorings that you might see in editors like Visual Studio and VS Code. In fact, if you write JavaScript in either of those editors, that experience is powered by Type...

Announcing TypeScript 5.5 RC
Jun 6, 2024
Post comments count 1
Post likes count 7

Announcing TypeScript 5.5 RC

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of the release candidate of TypeScript 5.5. To get started using the RC, you can get it through NuGet, or through npm with the following command: Here's a quick list of what's new in TypeScript 5.5! What's New Since the Beta? Since the beta, we've made a few changes that we wanted to call out. For one, we added support for ECMAScript's new methods. Additionally, we've adjusted the behavior of TypeScript's new regular expression checking to be slightly more lenient, while still erroring on questionable escapes tha...

Announcing TypeScript 5.5 Beta
Apr 25, 2024
Post comments count 6
Post likes count 4

Announcing TypeScript 5.5 Beta

Daniel Rosenwasser
Daniel Rosenwasser

Today we are excited to announce the availability of TypeScript 5.5 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: Here's a quick list of what's new in TypeScript 5.5! Inferred Type Predicates This section was written by Dan Vanderkam, who implemented this feature in TypeScript 5.5. Thanks Dan! TypeScript's control flow analysis does a great job of tracking how the type of a variable changes as it moves through your code: By making you handle the case, TypeScript pushes you to write more robust code...