TypeScript 3.8 ajoute des importations et des exportations de type uniquement

TypeScript 3.8, une nouvelle version du sur-ensemble typé de JavaScript de Microsoft, est désormais disponible en version de production. La dernière mise à niveau de TypeScript met l'accent sur les importations et les exportations de type uniquement et sur la conformité aux normes ECMAScript.

La version ajoute une nouvelle syntaxe pour les importations et les exportations de type uniquement, dans le but de donner aux utilisateurs un contrôle plus fin sur l'importation et l'élision. La import typesyntaxe importe uniquement les déclarations à utiliser pour les annotations de type et les déclarations et est toujours entièrement effacée. La  export type syntaxe fournit uniquement une exportation à utiliser pour les contextes de type et est effacée de la sortie TypeScript.

TypeScript a utilisé la syntaxe d'importation de JavaScript pour activer les types de référence. Bien que pratique, la fonctionnalité ne fonctionnait que grâce à la fonction d'élision d'importation, qui omet les importations de type TypeScript lorsque TypeScript génère des fichiers JavaScript. Cependant, l'élision des importations a été à la fois insuffisante et problématique.

En collaboration avec  import type, tapuscrit 3.8 ajoute également un indicateur de compilateur pour contrôler ce qui se passe avec les importations qui ne seront pas utilisés lors de l' exécution:  importsNotUsedAsValues.

En ce qui concerne la norme ECMAScript pour JavaScript, TypeScript 3.8 ajoute la prise en charge des champs privés ECMAScript, qui fait partie d'une proposition de déclaration de champs de classe pour JavaScript. Les domaines public et privé seront intégrés dans un tout unique et orthogonal, selon cette proposition.

Les autres améliorations promises dans TypeScript 3.8 incluent:

  • « Rapide et lâche » vérification de type incrémental, avec une option de compilateur, assumeChangesOnlyAffectDirectDependencies. Cette option peut réduire les temps de construction dans certains fichiers, car TypeScript revérifiera / reconstruira uniquement les fichiers qui ont été modifiés ainsi que les fichiers qui les importent directement. Il est recommandé pour les bases de code volumineuses où les développeurs sont prêts à reporter les erreurs de projet complet à une date ultérieure.
  • Implémentation de l'export sous forme de * nssyntaxe, fournissant un point d'entrée unique pour exposer tous les membres d'un autre module en un seul membre.
  • Niveau supérieur await, une fonctionnalité ECMAScript à venir pour supprimer les restrictions d'utilisation d'une awaitexpression en haut d'un fichier dans des conditions spécifiques.
  • Les fichiers JavaScript sont pris en charge dans TypeScript 3.8 en activant l' allowJsindicateur; la vérification de type de ces fichiers est prise en charge via l' checkjsoption ou en ajoutant un commentaire // @ ts-check en haut des fichiers .js. Les nouvelles balises JSDoc sont exploitées pour les propriétés, car les fichiers JavaScript ne disposent pas d'une syntaxe dédiée pour la vérification de type.
  • Un watchOptionschamp dans tsconfig.jsonet jsconfig.jsonpermet aux utilisateurs d'indiquer au compilateur / service de langage les stratégies de surveillance des fichiers à utiliser pour suivre les fichiers et les répertoires.
  • Un refactoring pour convertir les concaténations de chaînes.
  • Des contrôles d'assignabilité plus stricts aux unions avec des signatures d'index, un changement radical.
  • Dans un autre changement de rupture, objectdans JSDoc n'est plus anysous noImplicitAny.

Vous pouvez installer la version générale de TypeScript 3.8 via NuGet ou via NPM:

npm install typescript