Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !
TypeScript 3.8 intronise une nouvelle syntaxe pour l’import/export des types

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
8 commentaires
Avatar de TheMyst INpactien
Avatar de TheMystTheMyst- 28/02/20 à 09:31:36

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 ?

Avatar de Purexo Abonné
Avatar de PurexoPurexo- 28/02/20 à 09:40:02

> 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.

https://github.com/tc39/proposal-class-fields/blob/master/PRIVATE_SYNTAX_FAQ.md#...

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

Avatar de Purexo Abonné
Avatar de PurexoPurexo- 28/02/20 à 09:47:41

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

Avatar de TheMyst INpactien
Avatar de TheMystTheMyst- 28/02/20 à 10:20:35

Merci beaucoup, je m'y intéresserait à mon prochain projet utilisant du JS :chinois:

Avatar de zefling Abonné
Avatar de zeflingzefling- 28/02/20 à 12:09:50

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.

Avatar de jpaul Abonné
Avatar de jpauljpaul- 28/02/20 à 12:17:50

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é.

Avatar de zefling Abonné
Avatar de zeflingzefling- 28/02/20 à 12:36:10

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. :transpi:

Avatar de TheMyst INpactien
Avatar de TheMystTheMyst- 28/02/20 à 13:21:43

Merci à tous pour vos réponses :chinois:

Il n'est plus possible de commenter cette actualité.