TypeScript 3.6 brings stricter checking to iterators and generators

The forthcoming new version of Microsoft’s typed superset of JavaScript, TypeScript 3.6, brings stricter checking of iterators and generators and an improved user experience around promises. A beta release of TypeScript 3.6 is available now, with the production release due in late August 2019.

TypeScript 3.6 has stricter checking for generators and iterator functions, Previously, users of generators could not differentiate whether a value was yielded or returned from a generator. 

TypeScript 3.6 also improves the experience around Promises, which are one of the most common ways to interact with asynchronous data. Using a Promise-oriented API can be confusing. In one example cited, a common mistake is to forget to .then() or await the contents of a Promise before passing it to another function. Beginning with TypeScript 3.6, specialized error messages will prompt the user to consider using the await keyword.

TypeScript 3.6 also introduces these improvements and changes:

  • To provide a more accurate array spread, a ___spreadArrays helper models what happens in ECMAScript 2015 in older targets outside of downlevelIteration
  • Semicolon-aware code edits are supported. TypeScript is now able to detect whether a file uses semicolons in some editing processes. If a file lacks semicolons, TypeScript will not add them, as it had been doing.
  • In a breaking change, many declarations pertinent to DOM updates have been removed or changed with lib.dom.d.ts.
  • In another breaking change, TypeScript will only consult immediately preceding JSDoc comments to determine declared types.

Prior to the general release, Microsoft is pledging to work out bugs and improve stability performance. TypeScript 3.6 follows the late-May release of TypeScript 3.5. You can download the TypeScript 3.6 beta through NuGet or use NPM:

READ  Atlassian to offensively price itself through the post-pandemic patch

npm install -g typescript@beta



Please enter your comment!
Please enter your name here