Deno 1.40 发布概述
Deno 团队最近发布了 Deno 1.40 版本,该版本引入了即将推出的 JavaScript Temporal API 和最新的 JavaScript 装饰器提案,分别用于高级日期和时间操作以及元编程和面向切面编程。
Temporal API
Temporal API 旨在解决 JavaScript Date 对象的诸多缺陷。Maggie Johnson-Pint 曾在几年前指出了 Date 对象的主要问题,包括:
- 不支持用户本地时间和 UTC 之外的其他时区。
- 解析器行为不可靠,无法使用。
Date对象是可变的。- 夏令时(DST)行为不可预测。
- 计算 API 使用不便。
- 不支持非公历日历。
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 贡献指南。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。