Microsoft a annoncé la sortie de TypeScript 0.9. Cette version apporte plusieurs nouvelles fonctionnalités, avec en tête de liste la possibilité d'utiliser les Génériques (Generics). TypeScript représente la tentative de Microsoft de rendre JavaScript plus adapté au développement d'applications à grande échelle, en intégrant la vérification de type et l'analyse statique de code.
Les nouvelles fonctionnalités marquantes :
- Le support des génériques. Cette fonctionnalité populaire apportée à TypeScript permet une meilleure vérification de type et d'utiliser des modèles (patterns) de programmation modernes.
- La surcharge sur les constantes
- Le support de
export =
pour l'importation directe des classes - Les Enums
- TypeScript 0.9 - Remanié pour supporter la croissance future du langage. Des améliorations ont été apportées afin de mieux supporter la compilation incrémentale, apporter la capacité à gérer de grosses bases de code (> 100 000 lignes), ainsi que la correction de plus de 160 erreurs signalées sur CodePlex.
Une intéressante table ronde avec les membres de l'équipe TypeScript, dont Anders Heljsberg, Steve Lucco et Luke Hoban, a été récemment publiée par Channel 9. La conversation a fourni des informations supplémentaires sur les nouvelles fonctionnalités de cette version 0.9. Hoban a fait observer que le support des génériques dans TypeScript offrait des avantages même s'ils n'étaient pas utilisés directement par le programmeur. Ceci s'explique par le fait que le support des génériques dans TypeScript permet d'améliorer les performances de l'IntelliSense et d'aider à la vérification des erreurs.
Hejlsberg a donné l'exemple suivant lors de la discussion pour faire la démonstration des changements entre la version 0.8 et la version 0.9 :
var a = [ "hello", "world", "..." ]
var n = a.map( s => s.length)
(where n is an array of numbers)
TypeScript 0.8: s. <- L'IntelliSense ne montre rien
TypeScript 0.9: s. <- L'IntelliSense propose la complétion, dont length
Hejlsberg a également souligné que l'implémentation des génériques dans TypeScript est similaire à celle de Java, et non à celle de C#. C'est en partie parce que l'un des objectifs de TypeScript est de produire un code lisible. Aussi, des fonctionnalités comme le support de l'asynchronisme ne sont actuellement pas développées par l'équipe car, compte tenu des limitations actuelles de JavaScript, leur support impliquerait un code trop complexe (IcedCoffeeScript a été donné comme exemple de ce que l'équipe essayait d'éviter quant à l'approche de TypeScript en matière de génération de code). Si JavaScript pouvait bénéficier du support des itérateurs (iterators) et des générateurs (generators), alors cela permettrait à TypeScript de fournir un support de l'asynchronisme garantissant un code "lisible par l'homme". Les futures mises à jour de JavaScript pourraient rendre ceci possible.