BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités TypeScript 2.1 publié

TypeScript 2.1 publié

Favoris

Microsoft a publié TypeScript 2.1, apportant une série de fonctionnalités qui réduisent le typage inutile et rationalisent la chaîne d'outils.

Avant cette version, TypeScript supportait async/await, mais seulement avec comme cible ES2015. Cela fonctionnait bien si le code était destiné à être exécuté dans un environnement avancé uniquement, mais se révélait inadapté pour ceux qui développent pour tous les navigateurs dans la nature. Les développeurs devaient ajouter un transpileur supplémentaire (comme Babel) à leur chaîne d'outils afin de rendre le code utilisable par tous les navigateurs.

Avec 2.1, TypeScript peut émettre async/await dans un code compatible ES3/ES5, ce qui rend Babel caduque.

Pour les développeurs TypeScript travaillant avec React, l'absence de l'opérateur de décomposition signifiait soit une modification du code, soit l'ajout de Babel pour le gérer. Dans React, l'opérateur d'étalement est souvent utilisé lors du passage de propriétés à un composant de niveau inférieur ou lors d'une changement d'état. Pour y parvenir dans TypeScript pre-2.1, il faut ajouter Babel pour gérer la transformation. L'opérateur de décomposition est également utile dans d'autres cas, mais sans lui, les développeurs ont besoin d'utiliser la fonction JavaScript object.assign pour combiner des objets. Le résultat est identique mais l'opérateur de décomposition réduit considérablement la quantité de code nécessaire et améliore la lisibilité.

Alors qu'async/await et l'opérateur de décomposition étaient disponibles dans Babel depuis un certain temps, Daniel Rosenwasser, le responsable du Programme TypeScript a indiqué que le retard de la 2.1 était pour garantir que le système de type continuait à fonctionner comme prévu :

Lorsque nous mettons en œuvre une fonctionnalité dans TypeScript, nous prenons des mesures pour nous assurer qu'il est typé correctement et que ses caractéristiques en termes de performance sont raisonnables. Cela signifie que lorsque vous utilisez le rest/décomposition de l'objet, nous ne voulions pas délivrer uniquement une expérience où le type est effectivement any, ce qui aurait conduit les utilisateurs à être frustrés s'ils faisaient une erreur. Avec async/await, nous avons dû réécrire notre pipeline d'émission, ce qui signifiait que nous devions conserver la parité entre les deux sorties et le temps d'émission. L'investissement s'est révélé payant et TypeScript est encore extrêmement rapide.

Dans l'Annonce de TypeScript 2.1, Rosenwasser énumère de nombreuses autres nouvelles fonctionnalités telles que l'opérateur keyof, des imports plus faciles et les types mappés. Rosenwasser affirme que les types mappés sont "certainement la caractéristique la plus intéressante dans TypeScript 2.1", en évitant aux développeurs d'avoir à créer des variantes entièrement nouvelles d'objets existants lorsque les propriétés sont en gros les mêmes. A propos de l'amélioration de l'expérience des imports, Rosenwasser dit que la solution devenait plus souple :

Nous avons décidé que TypeScript doit être plus fiable et dans TypeScript 2.1, tant que vous avez un paquet installé, vous pouvez l'utiliser.

TypeScript 2.1 est disponible dans tous les canaux habituels.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT