Выпущена вторая версия языка программирования CoffeeScript

Новый релиз языка и компилятора стремится внести CoffeeScript в современную эпоху JavaScript, устраняя пробелы в совместимости и сохраняя чистый синтаксис, который и является визитной карточкой языка.
CoffeeScript

CoffeeScript 2 был разработан с двумя главными целями: устранить несовместимость с современным JavaScript, которая может помешать использованию CoffeeScript в проектах и в то же время сохранить как можно больше обратной совместимости.

Изначально CoffeeScript был представлен как «простой JavaScript». И новая версия получила все нововведения JavaScript ES2017 и общепринятого ES6. Многие функции JavaScript, такие как =>, полностью совместимы с CoffeeScript-аналогами. Многие из инноваций CoffeeScript были также введены в синтаксис JS: например, конструкция "a#{b}c" превратилась в 'a${b}c'.

Основные нововведения CoffeeScript 2

Следующие функции CoffeeScript были обновлены в версии 2.0 для совместимости с современным синтаксисом JavaScript:

  • Модули: import/export;
  • Классы: class Animal;
  • Асинхронные функции: await someFunction();
  • Стрелочные функции: =>;
  • Параметры функции по умолчанию: (options = {}) ->;
  • Rest-параметры функции: (items...) ->;
  • Деструктурирующее присваивание: [first, second] = items, {length} = items;
  • Свойства объектов: {options..., force: yes}, {force, otherOptions...} = options;
  • Шаблонные строки: "Hello, #{user}!";
  • Шаблонные строки с тегами: html"<strong>coffee</strong>";
  • JavaScript-конструкция for…of доступна в CoffeeScript:  for…from:for n from generatorFunction().

Важно отметить, что не все функции CoffeeScript были полностью приняты JavaScript: значения функций по умолчанию применимы, только если переменная имеет тип undefined; классы имеют также свои особенности. Полную информацию по этому поводу можно найти на сайте CoffeeScript.

Обратите внимание

Существует также два изменения в языке, которые могут повлиять на работу многих проектов:

  1. Пустой вызов super без аргументов больше не разрешён и должен быть использован как super() или super arguments...;
  2. Ссылки на this/@ не могут произойти до вызова super по спецификациям JavaScript.

В дополнение ко всему выше сказанному в CoffeeScript появились:

Более подробную информацию обо всех изменениях языка можно найти в списке изменений.

Установка

Для установки новой версии языка воспользуйтесь командой npm install -g coffeescript@2.

Источник: сайт CoffeeScript