Le langage TypeScript de Microsoft est désormais disponible en version 2.2. La nouvelle mouture se concentre tout particulièrement sur un meilleur support du framework React Native de Facebook, ajoute de nouvelles corrections rapides de code et officialise le type object.
TypeScript est, comme son nom l’indique, un langage de script. Il s’agit d’un surensemble de JavaScript, est totalement compatible avec ce dernier, et se destine à la gestion de gros projets. Open source (avec environ 150 contributeurs), il bénéficie d’un succès grandissant, au point d’ailleurs d’avoir été choisi par Google comme voie royale pour son Angular 2. Contrairement à JavaScript, il est transpilé de manière statique, ses erreurs étant vérifiées à la compilation, non à l’exécution.
Compatibilité React Native et outils
La nouvelle version 2.2 commence par s’accommoder davantage du framework React Native de Facebook. Elle propose un nouveau mode émission, react-native, sorte de combinaison entre les modes preserve et react. Il émet ainsi des fichiers .js, mais sans toucher à la syntaxe JSX. Pratique, selon Microsoft, quand on se sert de React Native, puisque ce dernier attend en entrée des fichiers .js.
L’éditeur présente également une amélioration des outils pour TypeScript, que l’on peut retrouver dans n’importe quel éditeur via un plug-in spécifique. La version 2.2 introduit ainsi de nouvelles « code actions », en fait des corrections rapides que le développeur peut appliquer : les importations et propriétés manquantes, this.
oublié aux variables, le retrait des déclarations inutilisées et l’implémentation des membres abstraits.
Type object, new.target et mixin
TypeScript 2.2 ajoute en outre un nouveau type, baptisé object. Il correspond en fait à tous les types, sauf aux primitives. Traduction, le développeur peut lui affecter ce qu’il souhaite, sauf string
, boolean
, number
, symbol
, null
et undefined
, ces deux derniers dans le cas où strictNullChecks
est utilisé.
Parmi les autres nouveautés de la version 2.2, signalons l’implémentation de la méta-propriété new.target
. Cette fonctionnalité prévue dans ES2015 permet aux constructeurs de deviner si une sous-classe est en cours de construction, alors qu’ils ne peuvent normalement accéder à this
avant d’appeler la méthode super()
. En outre, la nouvelle mouture comprend mieux le modèle mixin.