TypeScript Improves Never-Initialized Variables Checks
Written by Ian Elliot   
Monday, 21 October 2024

Microsoft has announced TypeScript 5.7 in beta, with improvements including stronger checks for variables that have never been initialized before use, and path rewriting for relative paths.

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 first improvement to TypeScript 5.7 is in the checks for variables that haven't been initialized. TypeScript has long-standing support for catching issues when a variable has not yet been initialized in all prior branches. However, until now there have been some places where this has failed. For example, if the variable is accessed in a separate function, the type system doesn’t know when the function will be called, so assumes that the variable will be initialized. The checks have been tightened in this version, so that although TypeScript 5.7 will still give some leeway on variables that could have been initialized, the type system is able to report errors when variables haven't ever been initialized.

The second improvement is a change to deal with tools that support the running of TypeScript code "in-place", meaning they do not require a build step to generate output JavaScript files. The blog post explaining the improvement mentions ts-node, tsx, Deno, Bun, and Node.js. A problem can arise if developers want to generate .js files out of .ts files created like this, because the import path is relative but the output path needs to be absolute, and until now TypeScript has avoided rewriting any paths. There's now a new compiler option that will rewrite the path to be absolute.

Other improvements include support for --target es2024, which allows users to target ECMAScript 2024 runtimes; faster Project ownership checks in editors for composite projects; and validated JSON imports when importing from a .json file under --module nodenext so TypeScript will now enforce certain rules to prevent runtime errors.

TypeScript 5.7 is available in beta now.

More Information

TypeScript On NuGet

TypeScript On GitHub

Related Articles

TypeScript 5.6 Tightens Truthy And Nullish Checks

TypeScript 5.5 Adds ECMAScript Set Support

Node.js Adds Experimental TypeScript Support

TypeScript 5 - Smaller, Simpler, Faster

TypeScript 4.7 Adds Node.js ECMAScript Module Support

TypeScript 4.6 Improves Constructors

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


David Padua Recognized With HPC Award
27/09/2024

David A. Padua is the recipient of the 2024 ACM-IEEE CS Ken Kennedy Award which recognizes achievements in parallel and high performance computing (HPC). Padua is cited for innovative and us [ ... ]



Be Counted In the Python Developer Survey
09/10/2024

Conducted annually by the Python Software Foundation in conjunction with JetBrains, this survey is the major source of knowledge about the current state of the Python community. The eighth iterat [ ... ]


More News

kotlin book

 

Comments




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

Last Updated ( Monday, 21 October 2024 )