Deno 1.40 发布,支持即将推出的 JavaScript Temporal API 和装饰器

Deno 1.40 发布概述

Deno 团队最近发布了 Deno 1.40 版本,该版本引入了即将推出的 JavaScript Temporal API 和最新的 JavaScript 装饰器提案,分别用于高级日期和时间操作以及元编程和面向切面编程。

Temporal API

Temporal API 旨在解决 JavaScript Date 对象的诸多缺陷。Maggie Johnson-Pint 曾在几年前指出了 Date 对象的主要问题,包括:

  1. 不支持用户本地时间和 UTC 之外的其他时区。
  2. 解析器行为不可靠,无法使用。
  3. Date 对象是可变的。
  4. 夏令时(DST)行为不可预测。
  5. 计算 API 使用不便。
  6. 不支持非公历日历。

Temporal API 提案目前处于 Stage 3 阶段,开发者可以通过 Temporal Cookbook 了解更多细节。当提案进入 Stage 4 时,Temporal API 将正式成为 JavaScript 语言的一部分。

装饰器提案

JavaScript 装饰器提案同样处于 Stage 3 阶段,它允许开发者扩展 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)中已经流行,但当前提案是第四版,预计将成为最终版本并加入 JavaScript 规范。TC39 委员会已经对装饰器提案进行了超过五年的迭代。

其他信息

开发者可以查看 Deno 1.40 的发布说明,了解完整的特性、改进和 bug 修复列表。Deno 是 MIT 许可下的开源软件,鼓励通过 Deno 项目 进行贡献,并应遵循 Deno 贡献指南

阅读 18
0 条评论