Unlock the Power of TypeScript 3.8
The latest version of TypeScript, 3.8, has arrived, packed with exciting features and improvements. As of now, version 3.8.3 is already available, so let’s dive in and explore the top five changes that will revolutionize your coding experience.
Upgrade to the Latest Version
Before we begin, make sure you’re running the latest version of TypeScript. You can upgrade using NPM with the command:
npm install typescript@latest
or
npm -g upgrade typescript
(add the -g option if you’re using it globally). If you’re using Visual Studio, Visual Studio Code, or Sublime Text, you can upgrade via their respective interfaces.
Type-Only Imports and Exports
TypeScript 3.8 introduces a new syntax for importing and exporting types, giving you more control over how import statements are handled in the output. The importsNotUsedAsValues compiler option allows you to choose whether to drop or preserve import declarations. This feature is particularly useful when compiling with the --isolatedModules option, the transpileModule API, or Babel.
Export * as ns Syntax
TypeScript 3.8 supports the export * as namespace syntax, allowing you to expose all members of another module as a single member. This feature is part of the ECMAScript 2020 standard and can be configured in your tsconfig.json file.
ES2020 Private Fields
Private fields, denoted by the # character, are now supported in TypeScript 3.8. These fields are scoped to their containing class and cannot be accessed outside of it. Note that private fields must be declared before they’re used, and you must target ECMAScript 2015 (ES6) or higher to use them.
Top-Level Await
TypeScript 3.8 introduces top-level await, allowing you to use await expressions directly at the top level of a module or script. This feature is part of the ECMAScript specification and can be enabled by setting the target compiler option to es2017 or above and the module option to esnext or system.
JSDoc Property Modifiers
TypeScript 3.8 adds support for three accessibility modifiers:
@public@private@protected
Additionally, the @readonly modifier ensures that a property is only assigned a value during initialization. These modifiers can be used to add documentation comments directly to your JavaScript source code.
Explore More Features and Improvements
TypeScript 3.8 brings many more exciting features and improvements, including:
- better directory watching on Linux
- “Fast and Loose” incremental checking
- refactorings for string concatenations and call hierarchies
Be sure to check out the official documentation for more information.