Deno 1.40: будущий Temporal API и декораторы JavaScript
В Deno 1.40 реализовали предстоящий Temporal API JavaScript для расширенных операций с датой и временем, а также новейшее предложение декораторов JavaScript для мета- и аспектно-ориентированного программирования.
просмотры 360🕑 2 мин. чтения
В 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) работает над предложениями по декораторам уже более пяти лет.
Приготовьтесь к настоящему технологическому фестивалю! Google I/O 2024 уже на подходе, и он обещает быть очень интересным. Давайте посмотрим, чего же нам стоит ждать: