A peine dévoilé les spécifications du langage AtScript au coeur du prochain AngularJS 2.0, très inspiré de TypeScript, que dans la même journée l'équipe TypeScript de Microsoft vient de publier un communiqué précisant ses intentions pour les prochaines versions de son langage et compilateur.
Dans cette feuille de route, on apprend par exemple que la version 1.2 ne sera pas publique car consacrée à consolider l'architecture interne du compilateur.
La version 1.3 de TypeScript devrait permettre une intégration plus facile du compilateur dans les environnements intégrés de développement par l'intermédiaire d'une API normalisée, et devrait officialiser l'apparition des attributs protected et des n-uplets typés.
La version 1.4 devrait permettre l'utilisation des unions de types, fonctionnalité très intéressante permettant de combiner des types pour en former de nouveaux.
Avec la version 2.0, TypeScript devrait finaliser sa compatibilité totale avec le standard ECMAScript 6.
TypeScript et le chemin vers la 2.0
Ce qui suit est la traduction en français avec l'aimable autorisation de Microsoft
TypeScript et le chemin vers la 2.0
Lorsque nous avons publié TypeScript 1.0 plus tôt cette année, nous nous sommes concentrés à livrer un langage qui permettrait aux développeurs de véritablement passer à l'échelle leurs projets JavaScript. Nous avons été assez époustouflés de voir tout ce que les gens ont pu faire avec, dont Mozilla Shumway avec 170 000 lignes, WalMart stationary, et l'enrichissante expérience de Microsoft Azure, qui est maintenant à plus de 1 million de lignes de code !
Notre but avec TypeScript est de continuer à soutenir les projets de cette taille et de faire notre possible pour en faire le meilleur langage pour le passage à l'échelle de JavaScript. Avec la version 1.1, nous avons publié un compilateur rapide et léger qui est capable de compiler quatre fois plus rapidement qu'auparavant. Le nouveau compilateur est également plus flexible quant à l'ajout de nouvelles fonctionnalités, ce que nous exploiterons jusqu'à la 2.0.
Aujourd'hui, nous voulons parler de la feuille de route vers la 2.0. Nous vous encourageons à nous rejoindre sur la page de GitHub de TypeScript et à nous aider à rendre TypeScript le meilleur possible.
La communauté JavaScript typé grandit
La communauté JavaScript typé continue à croître, ce qui est excitant à regarder et à en faire partie. DefinitelyTyped contient maintenant plus de 700 typages .d.ts pour un large éventail de bibliothèques et de frameworks JavaScript et en est presque à son 600ième contributeur.
Nous voyons aussi de nouveaux projets qui s'appuient sur les travaux de la communauté JavaScript typé. Le premier d'entre eux, le langage Flow de Facebook, a été annoncé plus tôt cette année. Il s'appuie sur des modules comme brique fondamentale de construction pour les applications, et à ceci ajoute une inférence de types riche et la compatibilité avec les .d.ts. Le second projet, appelé AtScript, a été récemment annoncé par l'équipe d'Angular chez Google. Il s'appuie sur les annotations de type façon TypeScript et ajoute les annotations de métadonnées et des vérifications à l'exécution.
L'équipe TypeScript travaille aussi bien avec l'équipe de Flow qu'avec celle d'AtScript pour les aider à s'assurer que les ressources qui ont déjà été mises à disposition par la communauté Javascript typé pourront être utilisées dans au sein de ces outils. Tous ces projets ont beaucoup à apprendre les uns des autres, et nous sommes impatients de travailler ensemble à l'avenir pour créer les meilleurs outils possibles pour la communauté JavaScript. À long terme, nous allons également travailler pour inclure les meilleures fonctionnalités de ces outils dans ECMAScript, la norme derrière JavaScript.
Feuille de route
TypeScript 1.3
Notre prochaine version sera TypeScript 1.3 et comprendra un nouveau service d'accès au langage réécrit pour permettre une expérience de développement dans les éditeurs avec TypeScript plus fluide et plus rapide. Cela marque également la première version où nous allons commencer à normaliser l'API du compilateur afin que les outils puissent s'appuyer dessus. Dans le cadre de cette version, nous donnerons également un aperçu d'une nouvelle expérience de Visual Studio qui sera incluse à terme à Visual Studio.
Du côté du langage, nous sommes en train de mettre en place deux nouvelles fonctionnalités : les attributs protected et n-uplets typés. Le modificateur d'accès protected a longtemps été une fonctionnalité très demandée et aidera à ouvrir la voie pour des modèles plus orientés objet en TypeScript. Avec les n-uplets typés, nous allons commencer à étendre le système de type afin de se rapprocher des pratiques qui seront communes avec le prochain ECMAScript 6. Plus précisément, cela permettra la manipulation fiable via le typage des tableaux déstructurés qui seront traités comme des n-uplets.
Vous pourriez demander « où est TypeScript 1.2 ? » Nous avions l'intention d'utiliser cette version comme une version de stabilisation, mais il se trouve que la 1.1 s'est avérée suffisamment stable pour que les équipes se soient tournées vers elle. Cela nous permet donc de passer directement à la finalisation du travail sur le service d'accès au langage et d'inclure de nouvelles fonctionnalités plus tôt que nous ne l'avions initialement prévu.
TypeScript 1.4
Dans la version 1.4, nous nous concentrerons davantage sur l'extension du langage. Les premières fonctionnalités sont déjà disponibles dans la branche master sur GitHub. Il s'agit des unions de types et de l'utilisation de typeof dans les blocs if pour affiner le type. Vous pouvez voir ces deux fonctionnalités dans cet exemple :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function createCustomer(name: { firstName: string; lastName: string } | string) { if (typeof name === "string") { // Because of the typeof check in the if, we know name has type string return { fullName: name }; } else { // Since it's not a string, we know name has // type { firstName: string; lastName: string } return { fullName: name.firstName + " " + name.lastName }; } } // Both customers have type { fullName: string } var customer = createCustomer("John Smith"); var customer2 = createCustomer({ firstName: "Samuel", lastName: "Jones" }); |
De TypeScript 1.5 à TypeScript 2.0
En nous tournant vers la version 2.0, nous nous focaliserons sur deux objectifs en plus de notre but principal d'apporter un bon outillage pour le développement en JavaScript. Le premier objectif consiste à s'aligner avec l'ES6. L'alignement avec ES6 permettra à TypeScript de devenir un sur-ensemble du prochain JavaScript, ouvrant la voie pour travailler avec les nouveaux modèles de code comme la déstructuration, les modèles de chaînes de caractères (template strings), les promesses (promises), les itérateurs et autres en plus des fonctionnalités que TypeScript prend déjà en charge, telles que les classes et les fonctions anonymes fléchées. Nous travaillons également avec les équipes de Flow et d'Angular pour s'assurer que TypeScript est le meilleur langage pour travailler avec une gamme encore plus vaste de bibliothèques, y compris les frameworks déclaratifs comme la prochaine version d'Angular 2.0.
Les attentes
Il y a beaucoup de travail devant nous, mais nous avons déjà bien progressé sur cette feuille de route. Vous pouvez déjà essayer certaines des fonctionnalités mentionnées ci-dessus en récupérant la source la plus récente sur le dépôt GitHub de TypeScript. Nous avons adopté la manière GitHub de fournir les spécifications avec la demande de récupération. Cela vous permet de suivre les fonctionnalités telles qu'elles sont développées, et nous serions enchantés de lire vos retours.
Jonathan Turner (Microsoft)