Deno 1.40: будущий Temporal API и декораторы JavaScript

В Deno 1.40 реализовали предстоящий Temporal API JavaScript для расширенных операций с датой и временем, а также новейшее предложение декораторов JavaScript для мета- и аспектно-ориентированного программирования.

В Deno 1.40 реализовали предстоящий Temporal API JavaScript для расширенных операций с датой и временем, а также новейшее предложение декораторов JavaScript для мета- и аспектно-ориентированного программирования.

Temporal API устраняет недостатки объекта Date в JavaScript. 

По словам Мэгги Джонсон-Пинт, пару лет назад основные проблемы реализации Date были такими:

  • Отсутствие поддержки часовых поясов, отличных от местного времени пользователя и UTC
  • Поведение парсера настолько ненадежно, что его невозможно использовать.
  • Объект Date является мутабельным
  • Поведение DST непредсказуемо
  • Вычислительные API громоздки
  • Нет поддержки негригорианских календарей

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

Декораторы — это функции, вызываемые на классах, элементах классов или других синтаксических формах JavaScript во время определения. Вот пример декоратора @trace, который выводит журнал при каждом вызове функции и при ее возврате:

function trace(fn: any, ctx: ClassMethodDecoratorContext) {
  return function (...args: unknown[]) {
    console.log("ENTERED", ctx.name);
    const v = fn(...args);
    console.log("EXITED", ctx.name);
    return v;
  };
}

class App {
  @trace
  static start() {
    console.log("Hello World!");
  }
}

App.start();

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

Декораторы стали популярны благодаря Angular 2 (теперь просто Angular). Однако текущее предложение является четвертой итерацией предложения и, как ожидается, будет окончательной версией, которая в конечном итоге будет добавлена в спецификацию. TC39 (комитет по стандартизации языка JavaScript) работает над предложениями по декораторам уже более пяти лет.

Ранее мы писали о главных обновлениях Angular V17.

Читайте также
Игра «Нейрогород» на знание JavaScript и исправление фронтендерских багов
Игра «Нейрогород» на знание JavaScript и исправление фронтендерских багов
Игра «Нейрогород» на знание JavaScript и исправление фронтендерских багов

Задача игры — устранить все баги, особенно присматриваться к любым странным и необычным явлениям во внешнем облике города.

Volman IT нашел игру-программу, в которой нужно написать код Rust для управления флотом космических кораблей
Volman IT нашел игру-программу, в которой нужно написать код Rust для управления флотом космических кораблей
Volman IT нашел игру-программу, в которой нужно написать код Rust для управления флотом космических кораблей

Ваш код отвечает за работу двигателей, оружия, радаров и средств связи кораблей — от крошечных ракет до огромных крейсеров.

Java: новости в октябре
Java: новости в октябре
Java: новости в октябре

Рассказываем о некоторых новостях в октябре в Java, среди них JDK 22, BellSoft, Oracle, GraalVM, Open Liberty.

Google I/O 2024
Google I/O 2024
Google I/O 2024

Приготовьтесь к настоящему технологическому фестивалю! Google I/O 2024 уже на подходе, и он обещает быть очень интересным. Давайте посмотрим, чего же нам стоит ждать: