Найти тему
itsail ru

Babel 7.5.0 получил экспериментальную поддержку пространств имен TypeScript

Оглавление

На прошлой неделе команда Babel объявила о выпуске Babel 7.5.0. Новая версия получила улучшенную поддержку нескольких предложений ECMAScript, включая вариант оператора конвейера F# первого этапа и официальный плагин для предложения четвертого этапа динамического импорта (dynamic import).

Он также теперь доступен с экспериментальной поддержкой пространств имен TypeScript.

Ниже приведены некоторые основные изменения в Babel 7.5.0:

Оператор конвейера F #

Это позволяет использовать синтаксический сахар (|>) для большей читабельности при объединении нескольких функций. Этот оператор похож на F #, OCaml, Elixir, Elm, Julia, Hack и LiveScript, а также на каналы UNIX.

Начиная с бета-версии 7.0.0 Babel имел минимальный вариант доступности оператора конвейера. Затем появился «умный» вариант в Babel 7.3.0, а в этом релизе доступен F#. Разница между «умным» вариантом и F# заключается в том, что последний использует концепцию стрелочных функций вместо «тематических ссылок» (#). В этом он стал немного похож на современный JavaScript.

Можно протестировать новый вариант, добавив @ babel / plugin-offer-pipeline-operator к своей конфигурации Babel. Так имеется возможность попробовать его в REPL, включив предустановку «Stage 1».

Динамическое преобразование импорта

Хотя Babel и поддерживает синтаксический анализ динамического импорта, он не обеспечивает согласованного способа его преобразования. Он позволяет анализировать импорт (foo), но просит разработчиков использовать webpack или babel-plugin-dynamic-import-node для его переноса. Чтобы решить эту проблему Babel 7.5.0 получил плагин @ babel / plugin-offer-dynamic-import, который вы можете использовать вместе с одним из плагинов преобразования модуля.

Экспериментальная поддержка пространств имен TypeScript

Когда поддержка TypeScript изначально появилась в Babel, она не включала пространства имен, поскольку это требует информацию о типе, которая может быть предоставлена только полным компилятором TypeScript и средством проверки типов. Начиная с Babel 7.5.0 есть возможность включить экспериментальную поддержку пространств имен в плагине TypeScript, используя параметр allowNamespaces в «@ babel / plugin-transform-typecript.

Однако в этой экспериментальной поддержке имеется ряд ограничений, о которых нужно помнить. Во-первых, пространства имен могут экспортировать только неизменные привязки. Во-вторых, при объединении нескольких пространств имен с одним именем их область не разделяется.

Это лишь основные новшества в Babel 7.5.0. Чтобы узнать больше, следует ознакомиться с официальной документацией и примечаниями к новой версии.