TypeScript

The official blog of the TypeScript team.

Latest posts

Apr 18, 2023
Post comments count 1
Post likes count 6

Announcing TypeScript 5.1 Beta

Daniel Rosenwasser

Today we're announcing our beta release of TypeScript 5.1! 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.1! Easier Implicit Returns for -Returning Functions In JavaScript, if a function finishes running without hitting a , it returns the value . However, in previous versions of TypeScript, the only functions that could have absolutely no return statements were - and -returning functions. That meant that even if you explicitly said "this function returns " you were f...

Mar 16, 2023
Post comments count 7
Post likes count 38

Announcing TypeScript 5.0

Daniel Rosenwasser

Today we're excited to announce the release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript smaller, simpler, and faster. We've implemented the new decorators standard, added functionality to better support ESM projects in Node and bundlers, provided new ways for library authors to control generic inference, expanded our JSDoc functionality, simplified configuration, and made many other improvements. If you're not familiar with TypeScript yet, it's a language that builds on JavaScript by adding syntax for types which can be used for type-checking. Type-checking can he...

Mar 9, 2023
Post comments count 5
Post likes count 9

TypeScript’s Migration to Modules

Daniel,
Jake

One of the most impactful things we've worked on in TypeScript 5.0 isn't a feature, a bug fix, or a data structure optimization. Instead, it's an infrastructure change. In TypeScript 5.0, we restructured our entire codebase to use ECMAScript modules, and switched to a newer emit target. What to Know Now, before we dive in, we want to set expectations. It's good to know what this does and doesn't mean for TypeScript 5.0. As a general user of TypeScript, you'll need to be running Node.js 12 at a minimum. s should go a little faster and take up less space, since the package size should be reduced by about 46...

Mar 1, 2023
Post comments count 0
Post likes count 3

Announcing TypeScript 5.0 RC

Daniel Rosenwasser

Today we're excited to announce our Release Candidate of TypeScript 5.0! Between now and the stable release of TypeScript 5.0, we expect no further changes apart from critical bug fixes. This release brings many new features, while aiming to make TypeScript, smaller, simpler, and faster. We've implemented the new decorators standard, functionality to better support ESM projects in Node and bundlers, new ways for library authors to control generic inference, expanded our JSDoc functionality, simplified configuration, and made many other improvements. While the 5.0 release includes correctness changes and depre...

Jan 26, 2023
Post comments count 10
Post likes count 25

Announcing TypeScript 5.0 Beta

Daniel Rosenwasser

Today we're excited to announce our beta release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript, smaller, simpler, and faster. We've implemented the new decorators standard, functionality to better support ESM projects in Node and bundlers, new ways for library authors to control generic inference, expanded our JSDoc functionality, simplified configuration, and made many other improvements. While the 5.0 release includes correctness changes and deprecations for less-used flags, we believe most users will have a similar upgrade experience as in previous releases. To g...

Nov 15, 2022
Post comments count 6
Post likes count 10

Announcing TypeScript 4.9

Daniel Rosenwasser

Today we are excited to announce the availability of TypeScript 4.9! If you're not familiar with TypeScript, it's a language that builds on JavaScript by adding types and type-checking. Types can describe things like the shapes of our objects, how functions can be called, and whether a property can be or . TypeScript can check these types to make sure we're not making mistakes in our programs so we can code with confidence. It can also power other tooling like auto-completion, go-to-definition, and refactorings in the editor. In fact, if you've used an editor like Visual Studio or VS Code for JavaScript, th...

Nov 1, 2022
Post comments count 3
Post likes count 4

Announcing TypeScript 4.9 RC

Daniel Rosenwasser

Today we're excited to announce our Release Candidate (RC) of TypeScript 4.9. Between now and the stable release of TypeScript 4.9, we expect no further changes apart from critical bug fixes. To get started using the RC, you can get it through NuGet, or use npm with the following command: You can also get editor support by Here's a quick list of what's new in TypeScript 4.9! What's New Since the Beta? TypeScript 4.9 beta originally included auto-accessors in classes, along with the performance improvements described below; however, these did not get documented in the 4.9 be...

Oct 1, 2022
Post comments count 6
Post likes count 11

Ten Years of TypeScript

Daniel Rosenwasser

Today is TypeScript's birthday! But this birthday is a special one - 10 years ago today, on October 1st, 2012, TypeScript was unveiled publicly for the first time. The Early Days When TypeScript first debuted, there was a lot of skepticism - and understandably so. To some JavaScript users, a team trying to bring static types to JavaScript might have sounded like an evil plot or a joke. But the features had merit, right? Type-checking, catching bugs before you even save your file, and getting rich editor features like code-completion, navigation, and refactorings? We knew teams inside and outside of our com...

Sep 23, 2022
Post comments count 8
Post likes count 6

Announcing TypeScript 4.9 Beta

Daniel Rosenwasser

Today we're announcing our beta release of TypeScript 4.9! To get started using the beta, you can get it through NuGet, or- use npm with the following command: You can also get editor support by Here's a quick list of what's new in TypeScript 4.9! The Operator TypeScript developers are often faced with a dilemma: we want to ensure that some expression matches some type, but also want to keep the most specific type of that expression for inference purposes. For example: Notice that we've written , whereas we probably should have written . We could try to catch that typo by usin...