CoffeeScript 2 kommt mit Verbesserungen der JavaScript-Syntax

CoffeeScript, eine einfache Sprache, die mit JavaScript kompiliert wird und das Leben von Webentwicklern erleichtern soll, ist gerade zu einer zweiten Hauptversion übergegangen, in der Syntaxverbesserungen im Vordergrund stehen. 

CoffeeScript 2, das sich seit April in der Beta-Phase befindet, verfügt über einen Compiler, der CoffeeScript-Code in moderne JavaScript-Syntax übersetzt. Eine CoffeeScript-Klasse wird jetzt beispielsweise mit dem classSchlüsselwort ausgegeben . Version 2 bietet auch Unterstützung für die Syntax asynchroner Funktionen, die zukünftige Objektzerstörungssyntax und JSX, JavaScript mit eingestreuten XML-Elementen.

Das Hauptziel von CoffeeScript 2 bestand darin, Inkompatibilitäten mit JavaScript zu beseitigen, die die Verwendung von CoffeScript für ein Projekt verhindern könnten, und die Abwärtskompatibilität so weit wie möglich zu erhalten.

Laut CoffeeScript-Entwicklern wurden neue Funktionen mit wenigen Änderungen gegenüber der 1.x-Version durchgeführt. Zuvor hatte das Team gewarnt, dass für CoffeeScript 2 Änderungen erforderlich sind, um der ECMAScript 2015-Spezifikation und höher zu entsprechen. "Die meisten aktuellen CoffeeScript-Projekte sollten in der Lage sein, ein Upgrade durchzuführen, ohne dass ein Refactoring erforderlich ist", so die Entwickler. Die wenigen wichtigen Änderungen betreffen gebundene Funktionen (fetter Pfeil), gebundene Generatorfunktionen und das Parsen von Literate CoffeeScript, das überarbeitet wurde, um vorsichtiger zu sein, dass eingerückte Listen nicht als Codeblöcke behandelt werden.

Durch die Modernisierung der JavaScript-Syntax müssen Entwickler möglicherweise die Ausgabe des Compilers transpilieren, wobei die Transpilation den Quellcode in äquivalenten, aber unterschiedlichen Quellcode konvertiert. In der CoffeeScript-Dokumentation wird der Fall angeführt, in dem Entwickler modernes JavaScript in älteres JavaScript konvertieren möchten, um es in älteren Versionen von Node.js oder älteren Browsern auszuführen. Die integrierte Unterstützung für den Babel-Transpiler ist in CoffeeScript enthalten.

In Version 2 gibt CoffeeScript jetzt Zeilenkommentare aus, nachdem sie in Version 1.1 verworfen wurden. Blockkommentare sind jetzt überall zulässig und ermöglichen statische Typanmerkungen. Das Kaffee-Befehlszeilentool wurde auch beim Upgrade verbessert.

Beachten Sie, dass einige JavaScript-Funktionen absichtlich weggelassen wurden, z. B. letund var, benannte Funktionen sowie die Schlüsselwörter getund set. Während let und benannte Funktionen der Einfachheit halber weggelassen wurden, wurde weggelassen var, damit sich CoffeeScript-Entwickler nicht mit Variablendeklarationen befassen müssen, und die Schlüsselwörter getund set wurden weggelassen, um grammatikalische Mehrdeutigkeiten zu vermeiden. Das Weglassen dieser JavaScript-Funktionen durch CoffeeScripts hat keinen Einfluss auf die Kompatibilität oder Interoperabilität mit JavaScript-Modulen oder -Bibliotheken.