TypeScript 2.0 est en version finale
ven, 23/09/2016 - 16:41
Après une bêta sortie cet été et deux ans de développement, le langage TypeScript 2.0 arrive en version finale.
TypeScript est un langage open source créé par Microsoft et plus particulièrement par Anders Helsjberg qui est également le créateur de Turbo Pascal, de Delphi et de C#. Le langage est basé sur les spécifications ECMAScript 6.
TypeScript est un sur-ensemble de JavaScript. Il s'agit d'un langage compilé. Le compilateur est là pour veiller au grain et générer un code JavaScript 'propre' à partir du code TypeScript. Apportant à Javascript la vérification de type, la déclaration de classes, la modularité, l'analyse statique, les interfaces, TypeScript veut combler les lacunes de JavaScript, qui rendent ce langage inadapté pour les très gros projets, pour citer Anders Helsjberg. De fait, TypeScript a été adopté par Angular 2.
Parmi les nouveautés de la mouture 2.0 nous remarquons l'arrivée des types non-nullables. Avant cela, une variable de n'importe quel type pouvait se voir affecter null ou undefined. Ce qui pose le problème potentiel, par exemple pour une fonction qui s'attend à recevoir une chaîne de caractères, de recevoir null en lieu et place.
Avec le nouveau commutateur du compilateur --strictNullChecks ceci n'est plus possible :
let foo: string = null; // Error!
A remarquer également, une déclaration simplifiée des modules. Si votre code utilise un module, il n'est plus besoin de décrire celui-ci in extenso
declare module "foo" {
var x: any;
export = x;
}
La simple déclaration
declare module "foo";
suffit. Et si votre code dépend de tout un package de modules, alors cette simple déclaration vous viendra en aide
declare module "foo/*";
TypeScript 2.0 c'est encore un meilleur contrôle du flux d'exécution, le compilateur sachant signaler le risque d'utiliser une variable non initialisée :
TypeScript 2.0 perment encore de déclarer des membres de classe en lecture seule :
Pour en apprendre plus sur TypeScript 2.0, lire des didactitiels et télécharger le langage : http://www.typescriptlang.org/