Babel добавляет возможность синтаксического анализа конвейеров F # Like


Последняя версия компилятора JavaScript Babel 7.5 была выпущена с возможностью синтаксического анализа и транспиляции F # и подобных конвейеров. Также была добавлена поддержка динамического импорта, а также экспериментальная поддержка пространств имен TypeScript.

Как следует из прежнего названия 6to5, Babel берет код JavaScript ECMAScript 2015+ и преобразует его в обратно совместимую версию для работы в старых браузерах. Он также может преобразовывать синтаксис React JSX в JavaScript.

Это означает, что разработчики могут использовать все новые функции JavaScript и знать, что он по-прежнему будет работать в старых браузерах, но потребность в них стала меньше, поскольку все меньше людей используют старые браузеры, которые не поддерживают ES2015 и выше. Это также становится менее важным, потому что улучшения, предлагаемые в настоящее время для JavaScript, при желании довольно незначительны, и большинство из них может подождать, пока они не получат широкую поддержку, а не спешить их использовать.

Новый выпуск Babel включает другую версию оператора конвейера. Процесс добавления оператора конвейера в JavaScript все еще находится на самой ранней стадии 1, и на данный момент существует пять вариантов. Первый «минимальный» вариант поддерживался в Babel с версии 7.0.0, а другой вариант («умный» вариант) появился в Babel с версии 7.3. В этом новом выпуске добавлена поддержка второго варианта, так называемого варианта F #, поскольку он работает так же, как оператор конвейера F #. Разработчики Babel говорят, что вариант F # отличается от варианта Smart использованием стрелочных функций, а не ссылок на темы. Это имеет то преимущество, что он больше похож на текущий JavaScript за счет немного менее сжатого синтаксиса. Это обратно совместимый способ функциональной оптимизации связанных вызовов функций и предоставляет практическую альтернативу расширению прототипов объектов для методов.

Все операторы конвейера делают код более читабельным при объединении нескольких функций в цепочку.

Другим важным улучшением новой версии является унифицированная поддержка анализа динамического импорта. В более ранних версиях Babel вам приходилось использовать разные плагины Babel в зависимости от того, какой сборщик вы планировали использовать. Этот новый выпуск обрабатывает бандлеры Webpack, Rollup, Node и SystemJS с помощью одного плагина.

Последнее улучшение — добавление экспериментальной поддержки пространств имен TypeScript. Разработчики говорят, что пространства имен были второй по величине функцией TypeScript, не поддерживаемой Babel (первая — проверка типов). Эта текущая (экспериментальная) поддержка имеет некоторые ограничения. В частности, пространства имен могут экспортировать только неизменяемые привязки, а когда вы объединяете несколько пространств имен с одним и тем же именем, их область видимости не используется совместно.

Ян Эллиот является автором книг Just JavaScript: An Idiomatic Approach и JavaScript Async, которые являются частью библиотеки I Programmer Library, опубликованной I / O Press.


Добавить комментарий