TypeScript

Références

L'actualité

Librairie

L'information

TypeScript

TypeScript est un langage de programmation libre et open source développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript.

C'est un sur-ensemble de JavaScript (c'est-à-dire que tout code JavaScript correct peut être utilisé avec TypeScript). Le code TypeScript est transcompilé en JavaScript, pouvant ainsi être interprété par n'importe quel navigateur web ou moteur JavaScript. Il a été cocréé par Anders Hejlsberg, principal inventeur de C#.

TypeScript permet un typage statique optionnel des variables et des fonctions, la création de classes et d'interfaces, l'import de modules, tout en conservant l'approche non-contraignante de JavaScript. Il supporte la spécification ECMAScript 6.
   

Historique

TypeScript a été rendu public en octobre 2012 (à la version 0.8), après deux ans de développement interne chez Microsoft. Peu de temps après l'annonce, Miguel de Icaza a salué le langage lui-même, mais a critiqué le manque d'environnement de développement mature en dehors de Microsoft Visual Studio, qui n'était pas disponible sur Linux et OS X.

L'environnement de développement Visual Studio Code, porté par le framework Electron (à l'initiative de Google Chromium), disponible sous Windows, MacOSX et Linux, permet désormais de combler ce vide.

Fonctionnalités

Le langage ajoute les fonctionnalités suivantes à ECMAScript 6 :

  • Typage statique
  • Typage générique
  • Interfaces
  • Classe, classe abstraite, expressions de classe
  • Modules
  • Mixin
  • Enumérations
  • Paramètres optionnels
  • Unions
  • Alias, alias de type générique
  • Instruction
  • Symboles
  • Propriétés calculées
  • Mots clés let, const et for ... of
Depuis la version 1.6, la syntaxe JSX est supportée.

Compilateur

Pour effectuer la transformation de code TypeScript en code JavaScript, un compilateur est nécessaire. Pour cela, il faut utiliser le compilateur, nommé tsc. Il peut être installé depuis le gestionnaire de package npm. La version actuelle supporte, par défaut, la spécification ECMAScript 3. Il supporte également des fonctionnalités exclusives de la spécification ECMAScript 5 et 6 (en spécifiant dans les options du compilateur).

ECMAScript

ECMAScript est un ensemble de normes concernant les langages de programmation de type script et standardisées par Ecma International dans le cadre de la spécification ECMA-262. Il s'agit donc d'un standard, dont les spécifications sont mises en oeuvre dans différents langages de script, comme JavaScript ou ActionScript, ainsi qu'en C++ (norme 2011). C'est un langage de programmation orienté prototype.

ECMAScript Edition 4 (ES4)

Aujourd'hui abandonné au profit d'ES5, les premiers travaux furent critiqués car ils modifiaient la nature du langage, qui passait d'un modèle de programmation avec les prototypes vers un modèle traditionnel fondé sur les classes comme Java, C++ ou C#.

Ce modèle orienté prototype est pour beaucoup le modèle le plus performant en développement orienté objet.
Une première version du référentiel d'implémentation d'ECMAScript 4 est disponible depuis juin 2007.

Par ailleurs, Mozilla et Adobe Systems ont travaillé à l'implémentation des spécifications d'ECMAScript 4 dans JavaScript 2 et ActionScript 3. Pour concilier ces implémentations avec la création de la machine virtuelle Tamarin, Mozilla et Adobe Systems collaborent sur le projet Tamarin.

ECMAScript Edition 5 (ES5)

Suite aux critiques à l'encontre d'ES4, un ensemble de sociétés, parmi lesquelles Yahoo, Microsoft et Google, décident de développer en parallèle une update de l'ES3 moins ambitieuse, nommée ES3.

Malgré les divergences d'option avec l'équipe consacrée à l'ES4, la décision est finalement prise de stopper le développement d'ES4 et de se consacrer exclusivement à l'ES3, qui deviendra ES5 pour éviter toute ambiguïté, et est publié le 3 décembre 2009. L'ensemble de ces spécifications sont aujourd'hui bien intégrées dans les navigateurs modernes.

ECMAScript Edition 6 (ES6)

Nommée ES2015, la dernière version d'ECMAScript a été publiée en juin 2015.

Son support par les navigateurs évolue progressivement, mais il est possible d'utiliser un transcompilateur (tel que Babel.js) vers ES5 pour développer dès aujourd'hui en ES6.

ECMAScript Edition 7 (ES7)

Première version publiée après le changement du processus de normalisation, l'ES7, ou ES2016, apporte peu de changements au langage. Le nouveau processus prévoit en effet de publier chaque année une nouvelle norme avec les ajouts qui ont eu lieu dans l'intervalle, afin d'éviter de publier des changements énormes comme ce fut le cas en 2015.