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
最新文章
- 2026大学生寒假兼职新风口:从送外卖到做AI副业,你还在靠体力赚零花钱吗?
- 如何获取Microsoft API Key 密钥实现bing搜索分步指南
- Google Pay UPI 注册与集成指南
- 香港支付宝可以绑定大陆银行卡吗?详解使用方法与步骤
- New API架构:探索现代软件开发的新趋势
- 什么是 Wandb
- 在 Golang 中实现 JWT 令牌认证
- 如何使用 Google News API 获取实时新闻数据
- 理解API网关在微服务架构中的作用
- 交叉熵的Numpy实现:从理论到实践
- Google DeepMind发布 Genie 3与Shopify:2小时上线电商3D样板间实战
- Gemini Deep Research 技术实战:利用 Gemini Advanced API 构建自动化的深度研究 Agent