Developpez.com - Rubrique TypeScript

Le Club des Développeurs et IT Pro

TypeScript 1.4 : les unions types, les alias, la portée des variables, etc.

L'outil de Microsoft s'enrichit de nouveautés orientées ECMAScript 6

Le 2015-01-19 14:23:20, par vermine, Expert éminent sénior
TypeScript 1.4 : les unions types, les alias, la portée des variables, etc.
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 :
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 :
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 :
> tsc --target ES6 myfile.js
Cette option est indispensable pour les fonctions ES6 qui ne peuvent pas s'apliquer à ES3 ou ES5.

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 :
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 :
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 ?
  Discussion forum
1 commentaire