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.

Читайте также
У Joomla 4.4.0 вышла русская локализация 
У Joomla 4.4.0 вышла русская локализация 
У Joomla 4.4.0 вышла русская локализация 

Известно, что работа над переводом Joomla на русский язык идёт на GitHub.

В США создают консорциум для регуляции AI
В США создают консорциум для регуляции AI
В США создают консорциум для регуляции AI

США хотят ограничить разработку AI попыткой регулировать

Dev новости: Next.js 15, Rust и AI-зарплаты, а также обзор Million.js
Dev новости: Next.js 15, Rust и AI-зарплаты, а также обзор Million.js
Dev новости: Next.js 15, Rust и AI-зарплаты, а также обзор Million.js

Не очевидное кеширование в Next.js 15, Rust перспективно для заработка и небольшой обзор мини библиотеки Million.js

WinterJS 1.0: Революция скорости? Сравнение с конкурентами
WinterJS 1.0: Революция скорости? Сравнение с конкурентами
WinterJS 1.0: Революция скорости? Сравнение с конкурентами

WinterJS 1.0 релиз стабильной версии состоялся в марте 2024 и новый рантайм обещает стать самым быстрым JavaScript-веб-сервером, способным обрабатывать свыше 58 000 запросов в секунду на одном ядре CPU. Давайте разберемся, действительно ли это так, и сравним WinterJS с другими популярными решениями вроде Node.js, Deno и Bun.