IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft annonce la sortie de la version bêta de TypeScript 3.9
Qui vient avec l'accélération du compilateur, la réduction de latence dans l'éditeur VS Code ainsi que plusieurs autres changements

Le , par Olivier Famien

792PARTAGES

5  0 
Microsoft vient d’annoncer la disponibilité de la version bêta de TypeScript 3.9. Dans cette nouvelle version, l’équipe de développement du langage de scripts déclare avoir mis un accent sur les performances, la stabilité, la correction de bogues, l’ajout de plusieurs fonctionnalités, l’accélération du compilateur, ainsi que divers autres changements appréciés des développeurs.

Améliorations de l’inférence et de la méthode Promise.all

Dans les versions de TypeScript (environ 3.7), les déclarations de fonctions comme Promise.all et Promise.race ont été mises à jour. Mais cela a induit des erreurs en particulier lors de la combinaison des valeurs avec null ou undefined. Dans cette dernière version, ce bogue a été corrigé avec des améliorations dans le processus d’inférence. Si vous utilisez encore une ancienne version de TypeScript et que vous avez rencontré des problèmes liés à l’objet Promise, il est désormais recommandé de passer à la version 3.9.

Depuis quelques années, des travaux ont été entrepris afin de concevoir un mécanisme fiable pour définir un type conditionnel récursif capable de gérer correctement les types. Cela a conduit à l’adoption de l’opérateur de type Awaited<T>. Dans sa feuille de route, l’équipe de TypeScript avait prévu intégrer cette nouvelle fonctionnalité dans TypeScript 3.9. Mais après plusieurs analyses, les mainteneurs du code ont réalisé que la fonctionnalité Awaited a besoin de plus de travail de conception avant de pouvoir être déployée, car pour l’instant, la seule façon de rendre le type conditionnel Awaited récursif est d’introduire un type complexe. En conséquence, cette fonctionnalité a été retirée de la branche principale.

Améliorations de la vitesse de compilation et du temps d’application des mises à jour dans Visual Studio Code (VS Code) après le renommage de fichiers

Avec les anciennes versions de TypeScript, de nombreux développeurs ont pointé du doigt des latences relativement élevées lors de la compilation avec des paquets tels que Material-UI et les composants de style. Pour résoudre ces problèmes de performance, plusieurs solutions ont été proposées et ont permis de gagner chacune environ 5 à 10 % de temps de compilation sur certaines bases de code. En faisant le point après les améliorations apportées, l’équipe de TypeScript note une réduction d’environ 40 % du temps de compilation avec Material-UI.

À côté de l’amélioration de la vitesse de compilation, des améliorations ont été également apportées dans cette dernière version de TypeScript afin que le renommage des fichiers dans VS Code n’entraîne pas de lenteur dans l’éditeur de code. En effet, l’équipe de Visual Studio Code a rapporté que lors du changement de nom d’un fichier, la détermination des instructions d’importation à mettre à jour pouvait prendre entre 5 et 10 secondes. TypeScript 3.9 résout ce problème en modifiant les paramètres internes de la façon dont le compilateur et le service de langage mettent en cache les recherches de fichiers.

Vérifications des fonctions non appelées dans les expressions conditionnelles

Dans TypeScript 3.7, des vérifications de fonctions non appelées ont été intégrées pour signaler une erreur lorsque vous avez oublié d’appeler une fonction. Cependant, cette erreur ne s’applique qu’aux conditions dans les instructions if. Dans TypeScript 3.9 bêta, cette fonctionnalité est désormais prise en charge dans les conditions ternaires ( cond ? trueExpr : falseExpr).

Importations automatiques CommonJS en JavaScript

Selon Microsoft, une grande nouvelle amélioration dans TypeScript 3.9 bêta vient de l’importation automatique de fichiers JavaScript à l’aide de modules CommonJS. Dans les anciennes versions, TypeScript supposait toujours que, quel que soit votre fichier, l’utilisateur souhaitait une importation de style ECMAScript comme ceci :

Code JavaScript : Sélectionner tout
import * as fs from "fs";

Cependant, tout le monde ne cible pas les modules de style ECMAScript lors de l’écriture de fichiers JavaScript. Beaucoup de développeurs utilisent toujours des importations de style CommonJS, require(...), comme ici :

Code CommonJS : Sélectionner tout
const fs = require("fs");

TypeScript détecte désormais automatiquement les types d’importations que vous utilisez pour garder le style de votre fichier propre et cohérent.

Prise en charge des fichiers tsconfig.json

Dans l’analyse des fichiers, les éditeurs doivent déterminer à quel fichier de configuration appartient un fichier afin qu’elle puisse appliquer les options appropriées et déterminer quels autres fichiers sont inclus dans le projet en cours. Par défaut, les éditeurs qui s’appuient sur le serveur du langage TypeScript le font en remontant chaque répertoire parent pour trouver le fichier tsconfig.json. Mais un des cas où cette solution ne marche pas est lorsque le fichier tsconfig.json est utilisé pour simplement référencer d’autres fichiers tsconfig.json comme ici :

Code JSON : Sélectionner tout
1
2
3
4
5
6
7
8
9
// tsconfig.json  
{  
    "files" : [ ] ,  
    "references" : [  
        {  "path" : "./tsconfig.shared.json"  } ,  
        {  "path" : "./tsconfig.frontend.json"  } ,  
        {  "chemin" : "./tsconfig.backend.json"  } ,  
    ]  
}

Ce fichier qui ne fait rien d’autre que gérer d’autres fichiers de projet est souvent appelé « solution » dans certains environnements. Ici, aucun de ces fichiers tsconfig.*.json n’est récupéré par le serveur, mais il serait intéressant que le serveur du langage comprenne que le fichier .ts actuel correspond à l’un des projets mentionnés dans cette racine tsconfig.json. TypeScript 3.9 ajoute la prise en charge des scénarios d’édition pour cette configuration.

En plus des améliorations, nous avons plusieurs changements qui ont été intégrés et qui sont en rupture avec les anciennes versions de TypeScript. Ce sont notamment des changements au niveau de Getter/Setter, de l’opérateur de chaînage facultatif, des caractères de texte, des contrôles qui sont maintenant plus stricts pour les insertions et les propriétés facultatives, et bien d’autres choses encore.

Source : Microsoft

Et vous ?

Comment appréciez-vous la nouvelle bêta de TypeScript 3.9 ? répond-elle à vos attentes ?

Quelles sont les fonctionnalités que vous aimez le plus ou le moins dans cette nouvelle version de TypeScript ?

Voir aussi

TypeScript entre dans le top 20 des langages les plus populaires, d’après le classement Redmonk de juin 2017
TypeScript 3.8 est disponible avec l’implémentation de la syntaxe « export * as ns » et prend en charge les champs privés d’ECMAScript
TypeScript 3.8 RC apporte une nouvelle syntaxe pour l’importation/exportation de types uniquement, ainsi que les champs privés ECMAScript
La version stable de TypeScript 3.7.0 est disponible et apporte diverses fonctionnalités et quelques améliorations au langage
La version bêta de TypeScript 3.7.0 est disponible avec la prise en charge de l’opérateur de chaînage d’optionnels (?.) et l’opérateur (??)

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de antho39
Futur Membre du Club https://www.developpez.com
Le 10/05/2020 à 17:13
Très bonne nouvelle cette mise à jour !
Je pense faire un article avec tout les nouveautés une fois que celle-ci sera sortie !
1  0