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 !

TypeScript 3.8 est disponible avec l'implémenation de la syntaxe « export * as ns »
Et prend en charge les champs privés d'ECMAScript

Le , par Bill Fassinou

28PARTAGES

5  0 
Microsoft a annoncé hier la sortie de la version stable de TypeScript 3.8. Elle apporte de nouvelles fonctionnalités comme l'a montré la RC publiée par Microsoft il y a deux semaines. Ces fonctionnalités comprennent l’importation et l’exportation de types uniquement, les champs privés de ECMAScript, etc. Voici de quoi il s’agit dans cette version :

L’importation et l’exportation de types uniquement

Avec les versions antérieures de TypeScript, l’importation et l’exportation de types fonctionnent avec l’élision des importations. Mais, il y a une ambiguïté qui survient lorsqu'il n'est pas clair s'il s'agit d'un type ou d'une valeur qui est importée. De plus, les déclarations d'importation qui ne contiennent que des importations utilisées comme types sont éliminées par l'élision d'importation de TypeScript. Pour contourner ces problèmes, TypeScript 3.8 ajoute désormais une nouvelle syntaxe pour l'importation et l'exportation des types uniquement. TypeScript 3.8 réutilise la syntaxe d'importation de JavaScript afin de vous permettre de référencer les types. Voici à quoi cela ressemble :

Code : Sélectionner tout
1
2
import type { SomeThing } from "./some-module.js";
export type { SomeThing };
L'instruction “import type” n'importe que les déclarations à utiliser pour les annotations et les déclarations de type. En plus, elle est toujours entièrement effacée lors de la transposition. Ensuite, l’instruction “export type” fournit uniquement une exportation pour les contextes de type, et est également effacée de la sortie de TypeScript. Lorsque vous utilisez la commande “import type” pour importer une classe, elle ne pourra pas être étendue par la suite. Par ailleurs, le compilateur TypeScript introduit un nouveau drapeau, importsNotUsedAsValues.

Cela sert à déterminer ce qu'il advient des importations non utilisées au moment de l'exécution. Les valeurs de ce drapeau, “remove”, “preserve” ou “error”, permettent aux développeurs de mieux contrôler l'importation et l'exportation des types.

Les champs privés ECMAScript

TypeScript 3.8 prend en charge les champs privés d'ECMAScript, qui font partie de la proposition de champs de classe de stade 3. Les champs privés commencent par un caractère # et sont uniquement limités à leur classe de contenu. Les modificateurs TypeScript comme public ou private ne peuvent pas être utilisés sur les champs privés. De même, les champs privés ne peuvent pas être accédés ou détectés en dehors de la classe qui les contient.


Ils sont différents du mot clé “privé” de TypeScript. La prise en charge de ces champs n’est pas encore totale. Selon Microsoft, TypeScript ne prend actuellement en charge que la transposition des champs privés vers ES6 et plus. L'implémentation rétrocompatible exploite les WeakMaps, alors que le mot clé “privé” fonctionne de nouveau vers ES3.

La syntaxe export * as ns

TypeScript 3.8 introduit la syntaxe export * de la norme ECMAScript 2020 permettant d’exposer tous les membres d'un module comme un seul membre.
En outre, TypeScript 3.8 prend désormais en charge ES2020 comme cible de transpilation et option de module. Il préserve les fonctionnalités ES2020 ajoutées dans TypeScript 3.7 et 3.8. La version 3.8 de TypeScript améliore son support de surveillance des répertoires et ajoute un nouveau champ de configuration du compilateur watchOptions. Cela donne aux développeurs un plus grand contrôle sur la façon dont les répertoires et les fichiers sont surveillés, améliorant les performances et la fiabilité du travail avec les modifications apportées aux node_modules.

Le champ watchOptions offre quatre nouvelles options : watchFile, watchDirectory, fallbackPolling et synchronousWatchDirectory, chacune d'entre elles ayant plusieurs options de configuration pour la fréquence de vérification des fichiers et des répertoires. Pour finir, le compilateur de TypeScript 3.8 ajoute une autre option d'optimisation des performances, assumeChangesOnlyAffectDirectDependencies, qui indique à TypeScript de ne vérifier et reconstruire que les fichiers qui ont été modifiés ainsi que les fichiers qui les importent directement.

Pour chaque version de TypeScript, le compilateur introduit des modifications de rupture à mesure que ses capacités de vérification de type s'améliorent. Dans TypeScript 3.8, le compilateur ajoute des contrôles d'assignabilité plus stricts aux unions avec des signatures d'index.

Source : Microsoft

Et vous ?

Que pensez-vous des nouveautés dans TypeScript 3.8 ?

Voir aussi

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 (??)

TypeScript 3.6 est disponible et apporte le support de import.meta dans SystemJS et des API qui prennent en charge --build et --incremental

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