2021 年 12 月 13 日, Deno 公司网站上的一篇博客文章中,工程师 Luca Casonato 宣布目前 Deno 已经加入 ECMA International。
此后,Deno 将在 TC39 工作组中与其他 ECMA 成员和更广泛的 JS 社区合作,讨论 JavaScript 的下一次迭代,推动语言的功能和改进,使所有人受益,尤其是服务器端 JavaScript 的开发者用户。
Deno 加入 TC39 的规划
Ecma International 是个行业标准组织,,它所通过的标准都是 ECMA-nnn 这样进行编号。
TC 39 是 ECMA 国际组织第 39 号技术委员会( Technical Committee ),它是一个推动 JavaScript 发展的委员会,是 ECMA 的一部分。
目前 Deno 关于 JavaScript 开发的一些目标功能:
更好地支持 ES 模块图中的非 JS 资产
更好地支持显式资源管理
用于(异步)迭代的更广泛的标准库函数
由于 TypeScript 是 Deno 生态系统的核心部分,Deno 正在计划推动 TypeScript 和 JavaScript 更紧密地结合。Luca Casonato 将成为 Deno 在 TC39 的主要代表,与 TC39 的其他成员一起将 JavaScript 推向新的高度。
关于 Deno
Deno 是一个基于 V8 构建的安全的 Typescript 运行时,V8 是 Google 的 JavaScript 运行时引擎。Deno 由 Ryan Dahl 在 2017 年创立,需要了解的是 Ryan Dahl 也是 Node.js 的创始人。因此,Deno 的诞生之初其实是为了解决 2009 年首次设计 Node.js 时的一些疏忽。
Deno 由以下技术构建:
Rust(Deno 的核心是用 Rust 编写的,Node 用 C ++编写)
Tokio(用 Rust 编写的事件循环)
TypeScript(Deno 支持 JavaScript 和开箱即用的 TypeScript)
V8(google 在 Chrome 和 Node 等中使用的 JavaScript 运行时)
目前最新版本为 Deno 1.16,其中包含以下功能和更改:
fetch 现在支持获取文件 URL;
V8 更新至 9.7 版;
支持 React 17 中的新 JSX 转换;
新的 Deno.addSignalListener API,用于侦听操作系统信号;
Error.cause 现在显示在控制台中,这对于调试发生在应用程序内部深处的错误非常有用;
现在可以明确地完成握手 TLS 连接,此版本向 Deno.TlsConn 中增加了 handshake()方法;
Web Streams API 的改进
Deno 1.16 稳定了 Deno.startTls API,这使得为稳定的 Deno 编写 SMTP 驱动程序成为可能;
Per-test 权限现在是稳定的,这使得测试程序在不同权限集下的行为变得非常容易;
localStorage 不再需要附带 -location;
支持在中止 AbortSignal 时指定原因;
Deno to npm 包构建工具:发布了一个名为 dnt 的新系统,用于把 Deno 编写的模块发布为 npm 包;
WebAssembly Reference 类型现在稳定可用;
findLast 和 findLastIndex 数组方法。
评论