La mise à jour majeure du sur-ensemble strictement typé de JavaScript de Microsoft est disponible depuis le 20 août en version de production. Cette version 4.0, qui arrive après la version 3.9 livrée en mai, apporte des améliorations dans le mode build et l'édition de scénarios ainsi que dans le support des types de tuple variadique, c’est-à-dire acceptant un nombre variable de paramètres.

TypeScript 4.0 augmente la vitesse en mode build, grâce à la mise en cache des diagnostics sémantiques dans le constructeur, écrits sur le disque avec .tsbuildinfo, afin de tirer parti de la build incrémentale suivante. Cette modalité permet d’éviter que la compilation d'un programme après une compilation précédente avec des erreurs sous --incremental soit très ralentie en cas d'utilisation du drapeau --noEmitOnError.

En outre, une nouvelle fonctionnalité JavaScript/TypeScript améliore l'édition de scénarios dans Visual Studio Code et Visual Studio 2017/2019. Un nouveau mode d'édition partielle au démarrage permet de remédier aux lenteurs de démarrage, en particulier pour les projets de grande envergure. Une fonction d'auto-importation plus intelligente permet d'effectuer un travail supplémentaire dans les scénarios en mode éditeur afin d'inclure les paquets répertoriés dans le champ des dépendances de package.json. L’information provenant de ces paquets permet d’améliorer les auto-importations sans modifier quoi que ce soit, notamment pour ce qui est du type-cheking.

Des fonctionnalités supplémentaires

Parmi les autres fonctionnalités de TypeScript 4.0, on peut citer :

- Des types de tuple variadique : permet pour les types de tuple de remplacer des spreads de types génériques par des éléments réels grâce à l'instanciation des types. Il est désormais possible d’introduire des spreads génériques dans la syntaxe des types de tuple. Cela permet de représenter les opérations d'ordre supérieur sur les tuples et les tableaux même si les types réels sur lesquels elles sont effectuées ne sont pas connus. De plus, les éléments spreads peuvent se produire n'importe où dans un tuple, et pas seulement à la fin. La version 4.0 améliore également le processus d'inférence pour les paramètres rest et les éléments rest tuple. Les types de tuple variadique permettent d'obtenir de nouveaux modèles, notamment en ce qui concerne la composition des fonctions.

- Les types de tuple peuvent désormais fournir des étiquettes, ce qui facilite grandement l’usage.

- Possibilité d’utiliser l'analyse des flux de contrôle pour déterminer les types de propriétés dans les classes quand noImplicitAny est activé.

- La proposition visant à ajouter trois nouveaux opérateurs d'affectation, &&=, ||=, et ??=, est supportée en tant qu'amélioration du codage.

- Le type des variables clause catch peut être spécifié comme inconnu. Cela permet de rappeler aux développeurs qu'ils doivent effectuer une vérification de type avant d'opérer sur leurs valeurs.

- Pour les factories JSX, les utilisateurs peuvent personnaliser un fragment factory grâce à une nouvelle option jsxFragmentFactory. Un fragment est un type d'élément JSX permettant de renvoyer plusieurs éléments enfants.

- Dans une modification de rupture, les opérandes pour la suppression doivent être facultatifs. De plus, l'utilisation d’un node factory dans TypeScript a été abandonnée.

TypeScript 4.0 est accessible via NuGet ou NPM à l’aide de la commande suivante : npm install -D typescript