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.

Читайте также
Dev новости:  Nuxt 3.9, Vue.js 3.4, анализируем React Server Components
Dev новости: Nuxt 3.9, Vue.js 3.4, анализируем React Server Components
Dev новости: Nuxt 3.9, Vue.js 3.4, анализируем React Server Components

Улучшения в Vue.js, анонс новых фич для версии 3.9 в Nuxt. Bun, Copilot и небольшой анализ react серверных компонентов.

Ретроспектива Vue 3
Ретроспектива Vue 3
Ретроспектива Vue 3

В этом тексте вспомним, что было выходило нового во Vue 3 при минорных обновлениях.

Google возьмет всю базу Stack Overflow для своего Gemini
Google возьмет всю базу Stack Overflow для своего Gemini
Google возьмет всю базу Stack Overflow для своего Gemini

Крупная база для разработчиков Stack Overflow запускает для ИИ доступ к своей всей базе через АПИ (OverflowAPI). И главным партнером становится Google, который будет использовать данные Stack Overflow для обучения Gemini. А Google поможет реализовать Stack Overflow мощные функции для проекта OverflowAI, который уже развивается. Обе компании планируют просмотр этих интеграций на конференции Google Cloud […]

Какой эффект от музыки при написании кода
Какой эффект от музыки при написании кода
Какой эффект от музыки при написании кода

Часто это делаю, хотя это плохая привычка и может мешать. Почему?