Deno 1.40 发布:Temporal API、简化导入与开发者工具全面升级指南(2025)
我们很高兴地宣布 Deno 1.40 的发布,这是 Deno 发展历程中的重要一步。这个版本带来了许多新功能,包括支持高级日期和时间操作的强大 Temporal API,以及采用最新的装饰器语法以实现更具表达力的代码。此外,Deno 1.40 还对部分功能进行了弃用、稳定化和删除,为未来的 Deno 2 做好准备。
Temporal API 的引入
Temporal API 是 JavaScript 生态中一个重要的提案,旨在提供更强大的日期和时间操作功能。在 Deno 1.40 中,您可以通过启用 --unstable 标志来使用 Temporal API。
此外,Deno 1.40 还新增了对 import.meta.filename 和 import.meta.dirname 属性的支持。这些属性类似于 CommonJS 模块系统中的 __filename 和 __dirname,可以提供当前模块文件的绝对路径和目录路径:
import.meta.filename:提供当前模块文件的绝对路径。import.meta.dirname:提供当前模块文件所在目录的路径。
以下是这些属性在不同操作系统中的表现:
在 Unix 系统中:
$ deno run /dev/my_module.ts
/dev/my_module.ts
/dev/
在 Windows 系统中:
C:> deno run C:my_module.ts
C:my_module.ts
C:
需要注意的是,这些属性仅适用于本地模块(从文件系统加载的模块),对于远程模块(通过 http:// 或 https:// 导入的模块)则返回 undefined。
更简单的 deno.json 导入配置
在 Deno 1.40 中,deno.json 文件的 imports 字段支持更简化的语法。例如,之前如果要从 npm 使用 preact,需要手动配置子路径导出。而现在,您只需简单配置即可直接导入 preact 和其子路径(如 preact/hooks)。
此改进大大简化了依赖管理,提升了开发效率。
弃用的功能
为了优化平台性能和简化 API,Deno 1.40 对以下功能进行了弃用:
Deno.serveHttp():被更快、更简单的Deno.serve()替代。Deno.metrics():转向更有针对性的命令行标志和 API,例如--strace-ops。- 流相关函数:逐步过渡到 Web 流,部分流函数已弃用,但仍可通过 Deno 标准库访问。
Deno.customInspect:改用Symbol.for("Deno.customInspect"),以提高浏览器兼容性。- 资源 ID(
rid)相关 API:包括Deno.isatty()、Deno.close()等,未来将被原生 JavaScript 对象的资源引用替代。
这些弃用措施旨在为 Deno 2 的发布铺平道路,同时确保开发者有足够的时间完成迁移。
新的稳定功能
以下 API 在 Deno 1.40 中已正式稳定:
- Web API:支持
rejectionhandled事件,改进了未处理 Promise 拒绝的处理方式。 - Node.js API:修复了部分 Node.js API 的兼容性问题,例如
ChildProcess.send()。
改进的开发者工具
Deno 1.40 对开发者工具进行了多项改进:
- 更智能的类型检查:在类型检查期间,稳定和不稳定的 API 类型定义会自动包含,无需额外配置。
- 改进的自动导入完成:修复了某些情况下的解析错误,使导入映射更加准确。
- 新的诊断打印工具:为
deno-lint和deno-doc提供了更清晰的诊断信息。 - 新增 linter 规则:默认启用了 "no-window" 规则,同时支持在忽略警告时添加注释解释。
不稳定功能的管理
Deno 1.40 开始逐步弃用通用的 --unstable 标志,转而采用更细粒度的标志(如 --unstable-webgpu)。此改动为未来的 Deno 2 提供了更清晰的功能控制。
此外,类型检查工具也改进了对不稳定 API 的支持,开发者在启用特定功能时将获得更明确的提示。
总结
Deno 1.40 是一个重要的版本更新,不仅引入了强大的 Temporal API 和更简化的配置方式,还通过弃用和稳定化措施为未来的 Deno 2 打下了坚实基础。我们鼓励开发者尽快升级到最新版本,以体验这些改进带来的便利。
原文链接: https://deno.com/blog/v1.40
最新文章
- Postman API 测试全面指南(附测试示例)
- OpenAI GPT-4o 图像生成 (gpt-image-1) API – IMG.LY
- 如何使用 OpenAI 的 Sora API:综合使用指南
- 如何使用 amazon scraper api 进行商品数据采集
- 推荐一款支持加入数据库的AI项目:让你的数据库秒变AI数据库!
- 什么是 API Key 密钥以及如何使用它们?
- API 身份验证与授权:OAuth2、JWT 与最佳实践
- 支付宝财富黑卡权益是什么?如何充分利用这些权益?
- API Settings详解:如何通过配置优化API性能与安全性
- Jenkins API使用教程
- 如何通过MCP+魔搭免费API搭建本地数据助手
- 微软翻译API密钥获取、API对接实战指南