Beta Of TypeScript 4.0 Is Out

The release features Variadic Tuple Types, Labeled Tuple Elements, Short-Circuiting Assignment Operators, and Class Property Inference from Constructors,

Microsoft released the beta of the next major milestone in the TypeScript programming language, TypeScript 4.0.
 
The highlight of the release include Variadic Tuple Types, Labeled Tuple Elements, Short-Circuiting Assignment Operators, Class Property Inference from Constructors, Custom JSX Factories, unknown on catch Clauses and Speed Improvements in build mode with --noEmitOnError
 
 
 
The company said that though this beta brings a new major version, there are no substantially larger breaking changes than usual. So the release is just the natural continuation from TypeScript 3.9.
 
With TypeScript 4.0 beta, spreads in tuple type syntax can now be generic. You can represent higher-order operations on tuples and arrays even when you don’t know the actual types you are operating over. When generic spreads are instantiated in these tuple types, they can produce other sets of array and tuple types. Another change is that spread elements can now occur anywhere in a tuple,not just at the end.
 
Also in TypeScript 4.0, tuples types can now provide labels. And in order to push the connection between parameter lists and tuple types, the syntax for rest elements and optional elements mirror has been made of parameter lists. These labeled tuples become useful when taking advantage of patterns around tuples and argument lists, along with implementing overloads in a type-safe way.
 
You can now use control flow analysis to determine the types of properties in classes when noImplicitAny is enabled. The release also brings three new assignment operators: &&=, ||=, and ??=.
 
TypeScript 4.0 allows you to specify the type of catch clause variables as unknown, which, Microsoft said, is safer than any as it reminds us that we need to perform some sorts of type-checks before operating on our values.
 
For additional details, you can visit the official announcement here.