CoffeeScript 2 arrive avec des améliorations de la syntaxe JavaScript

CoffeeScript, un langage simple qui se compile en JavaScript et vise à faciliter la vie des développeurs Web, vient de passer à une deuxième version majeure, qui met l'accent sur les améliorations de la syntaxe. 

CoffeeScript 2, qui était en phase bêta depuis avril, propose un compilateur qui traduit le code CoffeeScript en syntaxe JavaScript moderne. Une «classe» CoffeeScript est maintenant sortie en utilisant le classmot - clé, par exemple. La version 2 prend également en charge la syntaxe des fonctions asynchrones, la future syntaxe de déstructuration des objets et JSX, qui est du JavaScript avec des éléments XML entrecoupés.

Les principaux objectifs de CoffeeScript 2 étaient de supprimer les incompatibilités avec JavaScript qui pourraient empêcher l'utilisation de CoffeScript pour un projet, et de préserver au maximum la compatibilité descendante.

De nouvelles fonctionnalités ont été apportées avec quelques changements de rupture par rapport à la version 1.x, ont déclaré les développeurs de CoffeeScript. Auparavant, l'équipe avait averti que CoffeeScript 2 nécessiterait des modifications radicales pour se conformer à la spécification ECMAScript 2015 et au-dessus. «La plupart des projets CoffeeScript actuels devraient pouvoir être mis à niveau avec peu ou pas de refactorisation nécessaire», ont déclaré les développeurs. Les quelques changements de rupture impliquent des fonctions liées (grosse flèche), des fonctions de générateur liées et l'analyse de Literate CoffeeScript, qui a été refactorisée pour être plus prudent de ne pas traiter les listes indentées comme des blocs de code.

La modernisation de la syntaxe JavaScript signifie que les développeurs peuvent avoir besoin de transpiler la sortie du compilateur, la transpilation convertissant le code source en code source équivalent mais différent. La documentation CoffeeScript cite le cas dans lequel les développeurs voudraient convertir du JavaScript moderne en JavaScript plus ancien pour l'exécuter dans des versions plus anciennes de Node.js ou des navigateurs plus anciens. La prise en charge intégrée du transpileur Babel est incluse dans CoffeeScript.

Avec la version 2, CoffeeScript génère désormais des commentaires de ligne, après les avoir supprimés dans la version 1.1. Les commentaires de bloc sont désormais autorisés partout, ce qui permet des annotations de type statique. L'outil de ligne de commande coffee a également été amélioré dans la mise à niveau.

Notez que certaines fonctionnalités JavaScript ont été intentionnellement omises, telles que letet var, les fonctions nommées et les mots get- setclés et . Alors que les let fonctions nommées et ont été omises pour des raisons de simplicité, elles ont varété laissées de côté afin que les développeurs CoffeeScript n'aient pas à gérer les déclarations de variables, et les mots get- set clés et ont été omis pour éviter toute ambiguïté grammaticale. L'omission de CoffeeScripts de ces fonctionnalités JavaScript n'affecte pas la compatibilité ou l'interopérabilité avec les modules ou bibliothèques JavaScript.