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.

Читайте также
SolidStart, новости последних обновлений
SolidStart, новости последних обновлений
SolidStart, новости последних обновлений

В последнее время вышло две минорных версии 0.5.0 и 0.6.0 SolidStart. Библиотека идет к версии 1.0 и выпускает много полезных фич.

Dev новости: Zed редактор, Nuemark, Expo и Bun Shell
Dev новости: Zed редактор, Nuemark, Expo и Bun Shell
Dev новости: Zed редактор, Nuemark, Expo и Bun Shell

Zen code стал open source, инструменты для фронта Nue добавили редактор контента, релиз Expo 50

Новости для разработчиков: обновления от Deno, Android и Angular
Новости для разработчиков: обновления от Deno, Android и Angular
Новости для разработчиков: обновления от Deno, Android и Angular

На этой неделе в мире разработки фронтенда было много интересных новостей. Среди них релизы Angular v19, Deno v2.1 и предварительный анонс Android v16. Каждое из этих обновлений обещает улучшения в производительности и удобстве работы, а также новые возможности для разработчиков.

15 сайтов, чтобы сэкономить время CSS-разработчику
15 сайтов, чтобы сэкономить время CSS-разработчику
15 сайтов, чтобы сэкономить время CSS-разработчику

Собрали 15 сайтов, которые помогут сэкономить много времени и расширить опыт разработки CSS.