Connexion
Abonnez-vous

TypeScript 3.8 intronise une nouvelle syntaxe pour l’import/export des types

TypeScript 3.8 intronise une nouvelle syntaxe pour l’import/export des types

Le 28 février 2020 à 08h55

La nouvelle version du langage de script, publiée le 20 février, vient régler une ambiguïté qui pouvait s’avérer pénible pour les développeurs.

Jusqu’ici, l’importation ou l’exportation des types se faisait par élision, ce qui pouvait créer un flou. D’une part, l’élision de TypeScript pouvait engendrer une confusion entre les types et les valeurs. D’autre part, les importations ne comportant que des types étaient tout simplement supprimées.

Pour palier ces problèmes, TypeScript 3.8 reprend la syntaxe de JavaScript : 

import type { SomeThing } from "./some-module.js";
export type { SomeThing };

Microsoft précise plusieurs avantages, en plus de simplifier ces opérations particulières. Les instructions sont ainsi réservées aux annotations et déclarations de type. Elles sont toujours supprimées à la transposition. À la compilation, le drapeau importsNotUsedAsValues permet de suivre le devenir des importation non utilisées.

TypeScript 3.8 introduit également les champs privés, qui proviennent de la norme ECMAScript. Ils sont marqués par un # et sont limités à leur seule classe de contenu. Ils sont clairement destiné aux mesures renforcées de vie privée

Les modificateurs TypeScript comme public et private ne peuvent pas y être utilisés. Enfin, on ne peut pas accéder aux champs privés depuis l’extérieur de leur classe. Ils ne sont d’ailleurs même pas détectables.

Parmi les autres améliorations, signalons la prise en charge d’ECMAScript 2020 comme option pour module et target, ainsi que la syntaxe export * permettant d’exposer tous les membres d'un module comme un seul. 

L'installation ou la mise à jour de TypeScript se font via NuGet, par la commande : 

npm install typescript

Le 28 février 2020 à 08h55

Commentaires (8)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Ayant “fait” du javascript à travers node.js, est-ce que ça me servirai à quelquechose de me lancer dans TypeScript pour mes développements perso qui sont de petites envergures ?

votre avatar

> TypeScript 3.8 introduit également les champs privés, qui proviennent de la norme ECMAScript. Ils sont marqués par un # et sont limités à leur seule classe de contenu. Ils sont clairement destiné aux mesures renforcées de vie privée



Wut, Qu’est-ce que la vie privé viens faire la dedans xD ? La norme ecmascript a évolué et offre maintenant une syntaxe agréable pour faire des champs (vraiment) privé dans une classe. Et par privé on entends que c’est uniquement accessible par les méthode de la classe elle même.

Pour ma pars je n’ai jamais rien lu dans cette proposal parlant de vie privé, pour autant que je sache c’est plus un outil pour les développeurs de lib qui leurs permet d’être sur que les utilisateur de la lib ne vont pas dépendre de code n’étant pas sensé être exposé, afin de pouvoir les modifier sans risque de casser le code des utilisateurs.



github.com GitHub



Si vous avez des sources allant dans le sens de la vie privé (vraiment au sens de motivation, pas d’effet de bords) ça m’intéresse

votre avatar

Oui,

Le coût de la transpilation est contrebalancé par les avantages offert par le typage.



Le code sera plus clair, le compilateur indiquera les erreurs comme essayer d’appeler une fonction avec un string à la place d’un number.



Tout les IDE web populaire du moment supportent très bien typescript qui s’est imposé comme un standard, De plus en plus de lib publié fournissent des fichiers de typing (qui aide à la saisie du code et à éviter les erreurs).



Et avec ça je ne peux que conseiller TSDoc pour générer l’API Référence, C’est JSDoc en mieux car les possibilités de typing sont bien plus riche et fine en ts que les simples annotations JSDoc

votre avatar

Merci beaucoup, je m’y intéresserait à mon prochain projet utilisant du JS&nbsp;<img data-src=" />

votre avatar

Je fais beaucoup de Typescript (je suis sur un gros projet depuis 4 ans), même pour de petits projets, ce que j’ai en public chez moi :

https://git.ikilote.net/explore/projects?tag=typescript



Je peux te dire que ça c’est un gain non négligeable pour le debug.

votre avatar







TheMyst a écrit :



Ayant “fait” du javascript à travers node.js, est-ce que ça me servirai à quelquechose de me lancer dans TypeScript pour mes développements perso qui sont de petites envergures ?





Oui, ça simplifie largement le développement en fait.



Sachant que TypeScript est un “superset” de JavaScript, c’est à dire qu’il ne fait qu’ajouter des éléments de syntaxe. Donc du code JavaScript “standard” est aussi du code TypeScript correct. Donc tu sais déjà écrire du TS si tu sais écrire du JS. La seule différence c’est que ton IDE t’apporte une réelle autocomplétion et pas juste des “suppositions” : il ne te laisse pas écrire du code qui n’a pas de sens.



Pour des projets tout neufs sans code JS existant, si c’est pour t’y mettre, il vaut mieux paramétrer le compilateur pour rendre le typage obligatoire (en gros interdire le type “any” qui dit au compilateur “t’inquiète tu sais pas ce que c’est mais moi oui”).



L’écosystème est gigantesque et la plupart des librairies aujourd’hui viennent automatiquement avec leurs définitions de type embarqué.


votre avatar

Récemment j’ai passé un projet en JS vers du TS et ça se fait bien. Comme TS est du JS++, ça passe assez facile. Ça demande quand même un peu de boulot, car j’ai voulu tout typer. <img data-src=" />

votre avatar

Merci à tous pour vos réponses&nbsp;<img data-src=" />

TypeScript 3.8 intronise une nouvelle syntaxe pour l’import/export des types

Fermer