Publié dans Logiciel

8

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

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

Tiens, en parlant de ça :

Chiffre et formules mathématiques sur un tableau

CVSS 4.0 : dur, dur, d’être un expert !

C’est comme CVSS 5.0 mais en moins bien

18:17 Sécu 1
Une tête de fusée siglée Starlink.

Starlink accessible à Gaza sous contrôle de l’administration israélienne

Géotechnopolitique

16:37 Web 19
Fibre optique

G-PON, XGS-PON et 50G-PON : jusqu’à 50 Gb/s en fibre optique

Il faudrait déjà généraliser la fibre

16:03 HardWeb 20
Chiffre et formules mathématiques sur un tableau

CVSS 4.0 : dur, dur, d’être un expert !

Sécu 1
Une tête de fusée siglée Starlink.

Starlink accessible à Gaza sous contrôle de l’administration israélienne

Web 19
Fibre optique

G-PON, XGS-PON et 50G-PON : jusqu’à 50 Gb/s en fibre optique

HardWeb 20
Photo d'un immeuble troué de part en part

Règlement sur la cyber-résilience : les instances européennes en passe de conclure un accord

DroitSécu 7
lexique IA parodie

AGI, GPAI, modèles de fondation… de quoi on parle ?

IA 7

#LeBrief : logiciels libres scientifiques, fermeture de compte Google, « fabriquer » des femmes pour l’inclusion

livre dématérialisé

Des chercheurs ont élaboré une technique d’extraction des données d’entrainement de ChatGPT

IAScience 3
Un chien avec des lunettes apprend sur une tablette

Devenir expert en sécurité informatique en 3 clics

Sécu 11
Logo ownCloud

ownCloud : faille béante dans les déploiements conteneurisés utilisant graphapi

Sécu 16
Le SoC Graviton4 d’Amazon AWS posé sur une table

Amazon re:invent : SoC Graviton4 (Arm), instance R8g et Trainium2 pour l’IA

Hard 7
Logo Comcybergend

Guéguerre des polices dans le cyber (OFAC et ComCyberMi)

Sécu 10

#LeBrief : faille 0-day dans Chrome, smartphones à Hong Kong, 25 ans de la Dreamcast

Mur d’OVHcloud à Roubaix, avec le logo OVHcloud

OVHcloud Summit 2023 : SecNumCloud, IA et Local Zones

HardWeb 2
algorithmes de la CAF

Transparence, discriminations : les questions soulevées par l’algorithme de la CAF

IASociété 62

Plainte contre l’alternative paiement ou publicité comportementale de Meta

DroitIA 33
Nuage (pour le cloud) avec de la foudre

Économie de la donnée et services de cloud : l’Arcep renforce ses troupes

DroitWeb 0
De vieux ciseaux posés sur une surface en bois

Plus de 60 % des demandes de suppression reçues par Google émanent de Russie

Société 5
Une vieille boussole posée sur un plan en bois

La Commission européenne et Google proposent deux bases de données de fact-checks

DroitWeb 3

#LeBrief : des fichiers Google Drive disparaissent, FreeBSD 14, caméras camouflées, OnePlus 12

Le poing Dev – round 6

Next 148

Produits dangereux sur le web : nouvelles obligations en vue pour les marketplaces

Droit 9
consommation de l'ia

Usages et frugalité : quelle place pour les IA dans la société de demain ?

IA 12

La NASA établit une liaison laser à 16 millions de km, les essais continuent

Science 17
Concept de CPU

Semi-conducteurs : un important accord entre l’Europe et l’Inde

Hard 7

#LeBrief : PS5 Slim en France, Valeo porte plainte contre NVIDIA, pertes publicitaires X/Twitter

Un mélange entre une réunion d’Anonymous et de tête d’ampoules, pour le meilleur et le pire

651e édition des LIDD : Liens Intelligents Du Dimanche

Web 30
Bannière de Flock avec des bomes sur un fond rouge

#Flock, le grand remplacement par les intelligences artificielles

Flock 34
Un Sébastien transformé en lapin par Flock pour imiter le Quoi de neuf Docteur des Looney Tunes

Quoi de neuf à la rédac’ #9 : LeBrief 2.0, ligne édito, dossiers de fond

Next 65
Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

8

Commentaires (8)


TheMyst Abonné
Il y a 4 ans

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 ?


Purexo Abonné
Il y a 4 ans

> 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


Purexo Abonné
Il y a 4 ans

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


TheMyst Abonné
Il y a 4 ans

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


zefling Abonné
Il y a 4 ans

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.


jpaul Abonné
Il y a 4 ans






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



zefling Abonné
Il y a 4 ans

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=" />


TheMyst Abonné
Il y a 4 ans

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