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.

Читайте также
Chrome 125 beta
Chrome 125 beta
Chrome 125 beta

Релиз довольно скромный и из значимых добавляет несколько новых фич

Библиотека JavaScript/React позволяет разработчикам создавать чат-боты с искусственным интеллектом
Библиотека JavaScript/React позволяет разработчикам создавать чат-боты с искусственным интеллектом
Библиотека JavaScript/React позволяет разработчикам создавать чат-боты с искусственным интеллектом

Фронтенд-библиотека NLUX поставляется с адаптерами для ChatGPT и больших языковых моделей Hugging Face. Она также поддерживает персонализацию.

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

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

Рассказываем об обновлениях Firefox 119
Рассказываем об обновлениях Firefox 119
Рассказываем об обновлениях Firefox 119

В октябре вышли обновления Firefox 119. Также сформировали обновление ветки с длительным сроком поддержки — 115.4.0.