TypeScript 3.6, the latest version of Microsoft’s typed superset of JavaScript, is now available as a production release. It brings stricter checking of iterators and generators and an improved user experience around promises.
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 ofdownlevelIteration
. - 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.
- Many declarations pertinent to DOM updates have been removed or changed with
lib.dom.d.ts
. These changes can break exsting code. - TypeScript will only consult immediately preceding JSDoc comments to determine declared types. This too can break existing code.
- Better Unicode support around identifiers when emitting to ECMAScript 2015 and later targets.
- The
get
andset
accessors are allowed in ambient contexts. - APIs support
--build
and--incremental
. - Smarter auto-import syntax, around looking at existing imports before deciding how to import other modules.
You can download TypeScript 3.6 through NuGet or use NPM:
npm install -g typescript