TypeScript 4.8 Improves Intersection Reduction
Written by Ian Elliot   
Thursday, 01 September 2022

TypeScript 4.8 has been released with a number of correctness and consistency improvements that affect how intersection and union types work. The changes are used by TypeScript to narrow types.

TypeScript is a superset of JavaScript that adds optional static types which can be checked by the TypeScript compiler to catch common errors in your programs. TypeScript can use this information to help you avoid about mistakes like typos, missing arguments, or forgetting to check for null and undefined.


 

 

The improvements to managing correctness and consistency improvements under --strictNullChecks in the latest release affect how intersection and union types work. The team says that unknown is close in spirit to the union type {} | null | undefined because it accepts null, undefined, and any other type. TypeScript now recognizes this, and allows assignments from unknown to {} | null | undefined.

Another change means that NonNullable can use an intersection with {}, because {} & null and {} & undefined are discarded, meaning that {} intersected with any other object type simplifies to that object type. This is an improvement because intersection types like this can be reduced and assigned to, while conditional types currently cannot. The developers say that the changes also support "sensible improvements in control flow analysis and type narrowing".

Another improvement in the new release fixes a long-standing bug that until now has caused problems when some changes occurred in files in  --watch mode and editor scenarios. This sometimes manifested as displaying stale or inaccurate errors that might show up that require restarting tsc or VS Code. Developers reported the problems more on Unix systems, especially after saving a file with vim or swapping branches in git.

TypeScript 4.8 should no longer manifest the problem thanks to reworking of how it decides when to use a new watcher.

Other improvements include faster running of "find-all-references" in the editor. Because of a change to make TypeScript smarter as it aggregates references, the team says you should see improvements of about 20 percent in the time taken.

TypeScript 4.8 is available now.

 

 

 

More Information

TypeScript On NuGet

TypeScript On GitHub

Related Articles

TypeScript 4.7 Adds Node.js ECMAScript Module Support

TypeScript 4.6 Improves Constructors

TypeScript 4.5 Adds Awaited

TypeScript 4.4 Improves Control Flow Analysis

TypeScript 4.3 Adds Separate Property Write Types

TypeScript 4.2 Release Candidate Available

New TypeScript Website Launched

TypeScript 4.1 Adds Temporal Literal Types

 

 

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Snowflake Support For Apache Iceberg Goes GA
29/08/2024

Snowflake has added support for the Iceberg table format and subsequently became able to work with data commonly found in data lakes and warehouses.



Visual Studio 2022 v17.12 Preview 1 With .NET 9
20/08/2024

Visual Studio 2022 v17.12 Preview 1 is now available, and Visual Studio 2022 version 17.11 is now generally available. The 17.12 preview comes with the ability to work with .NET 9 projects and with ne [ ... ]


More News

kotlin book

 

Comments




or email your comment to: comments@i-programmer.info

<ASIN:1871962579>

<ASIN:B07S8958R9>

<ASIN:1871962560>

<ASIN:1871962501>

<ASIN:1871962528>

<ASIN:1871962625>

Last Updated ( Wednesday, 12 October 2022 )