The release adds a new syntax for type-only imports and exports, with the intent of giving users more fine-grained control over import and elision. The
import type syntax only imports declarations to be used for type annotations and declarations and always gets fully erased. The
export type syntax only provides an export to be used for type contexts and is erased from TypeScript output.
In conjunction with
import type, TypeScript 3.8 also adds a compiler flag to control what happens with imports that won’t be used at runtime:
Other improvements planned for TypeScript 3.8 include:
- Implementation of the export as
* nssyntax, providing a single entry point to expose all members of another module as a single member.
await, an upcoming ECMAScript feature to remove restrictions on using an
awaitexpression at the top of a file under specific conditions.
allowJsflag; type-checking of those files is supported via the
jsconfig.jsonlets users tell the compiler/language service which file watching strategies to use to keep track of files and directories.
The general release of TypeScript 3.8 is expected in mid February. The beta can be accessed through NuGet or via NPM:
npm install typescript@betacode