Désormais disponible en version de production, la mise à jour TypeScript 4.1 du langage open source de Microsoft ajoute des types à JavaScript. Cette dernière version s’enrichit de types littéraux de gabarits et apporte un grand nombre d'autres améliorations.

Le type littéral de gabarit a la même syntaxe que les types littéraux de chaînes en JavaScript, sauf qu'il est utilisé dans les positions de type. Quand il est utilisé avec des types littéraux concrets, un nouveau type littéral de chaînes est produit par la concaténation des contenus.

En plus de l’ajout des types littéraux de gabarits, TypeScript 4.1 permet aux développeurs de réorganiser les clés dans les types mappés avec une nouvelle clause as. Cette nouvelle clause permet aux développeurs d'exploiter des fonctionnalités comme les types littéraux de gabarits pour créer de nouveaux noms de propriété basés sur les anciens. Les clés peuvent être filtrées en produisant never, ce qui évite aux développeurs d'avoir à utiliser un type d'aide Omit supplémentaire dans certains cas.

TypeScript 4.0, la version majeure actuelle, a été livrée en août.

D'autres fonctionnalités

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

- La possibilité d'utiliser des types conditionnels récursifs : certaines restrictions sont allégées pour les types conditionnels, et ces derniers peuvent désormais se référencer immédiatement dans leurs branches, ce qui facilite l'écriture d'alias de types récursifs. Microsoft précise que les types récursifs doivent être utilisés de manière responsable et avec parcimonie. 

- Un nouveau drapeau --noUncheckedIndexedAccess fournit un nœud où chaque accès à la propriété ou accès indexé est considéré comme potentiellement indéfini. Ce drapeau peut détecter les erreurs hors limites, mais peut créer du bruit dans un grand nombre de codes. Il n'est pas automatiquement activé par le drapeau --strict. 

- L'option des chemins peut être utilisée sans baseUrl, pour éviter un problème créé par des mauvais chemins utilisés par les auto-importations. 

- checkJs implique désormais allowJs, corrigeant une situation dans laquelle le démarrage d'un projet JavaScript vérifié nécessitait à la fois allowJs et checkJs, ce qui causait des frictions. 

- Les fonctions par défaut jsx et jsxs du framework React 17 sont prises en charge par deux nouvelles options pour les options react-jsx et react-jsxdev du compilateur jsx. 

- Le tag JSDoc @see offre désormais un meilleur support dans les éditeurs pour JavaScript et TypeScript. 

- Dans un changement de rupture, les membres marqués comme abstraits ne peuvent plus être marqués comme asynchrones. Dans un autre changement de rupture, les paramètres de résolution ne sont plus optionnels dans Promise.

TypeScript 4.1 est accessible via NuGet ou via la commande NPM : npm install typescript.