L'outil de Microsoft s'enrichit de nouveautés orientées ECMAScript 6
L'équipe TypeScript de Microsoft a annoncé la sortie de la version 1.4 qui porte sur la construction de nouvelles fonctionnalités qui permettent de travailler avec plusieurs modèles JavaScript, de créer des typages plus riches et d'utiliser les nouvelles fonctionnalités de l'ES6.
Les types
Des adaptations ont été faites sur les types. Notamment sur les Union Types. Désormais, il est possible de spécifier qu'une valeur est d'un ou plusieurs types potentiels différents. Pour manipuler cette valeur, il est conseillé d'utiliser les méthodes typeof ou instanceof. Voici un exemple avec le passage d'un paramètre à une fonction :
Code typescript : | Sélectionner tout |
1 2 3 4 5 6 7 8 | function f(x: number | number[]) { if (typeof x === "number") { return x + 10; } else { // return sum of numbers } } |
Notons également la possibilité de définir un alias pour un type particulier dont vous aurez besoin à plusieurs reprises. C'est grâce au mot clef type que cela est possible :
Code typescript : | Sélectionner tout |
1 2 3 4 | type PrimitiveArray = Array<string|number|boolean>; type MyNumber = number; type NgScope = ng.IScope; type Callback = () => void; |
Le support de ECMAScript 6
L'un des principaux objectifs pour la prochaine version (2.0) est de supporter pleinement la norme ECMAScript 6. La version 1.4 apporte par exemple un nouveau mode de sortie, l'option ES6 :
Code : | Sélectionner tout |
> tsc --target ES6 myfile.js
On découvre également la gestion de let et const. La première est une fonctionnalité similaire à var mais elle vise à augmenter les possibilités au niveau de la portée de la variable. Avec let, vous pouvez restreindre la portée des variables à des blocs de code au lieu de la fonction entière. Par exemple :
Code typescript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | function f() { let total = 0; let x = 5; for (let x = 1; x < 10; x++) { total += x; } console.log(x); } f(); // outputs 5 |
Finalement, un travail a été fait pour adopter le système des template strings de ES6 qui peuvent être intégrées à des chaines de caractères et être correctement interprétées. Cette fonctionnalité peut même être compilée en des expressions ES3 ou ES5.
Code typescript : | Sélectionner tout |
1 2 | var rectangle = { height: 20, width: 10 }; var areaMessage = 'Rectangle area is ${rectangle.height * rectangle.width}'; |
Pour l'instant, l'équipe propose également de travailler sur les fonctions Asynch, également connues sous les noms de async..await. Elles offrent la possibilité d'exécuter du code et d'attendre le résultat sans pour autant bloquer l'exécution des instructions suivantes.
L'article sur le blog officiel.
Et vous ?
Utilisez-vous TypeScript et qu'en pensez-vous ?
Quel est votre avis sur ces nouveautés ?