Deno 1.40 发布:Temporal API、简化导入与开发者工具全面升级指南(2025)
文章目录
一. Deno 1.40 发布亮点概览
Deno 1.40 是该平台发展历程中的重要版本,带来了多项核心功能更新与改进:
- Temporal API 支持:提供高级日期和时间操作功能
- 装饰器语法改进:增强代码表达力
- 弃用与稳定化措施:为 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.customInspect
→ 改用Symbol.for("Deno.customInspect")
- 资源 ID(rid)相关 API → 未来将由原生对象替代,如
Deno.isatty()
、Deno.close()
这些调整为 Deno 2 的发布奠定了基础,同时给予开发者迁移时间。
五. 新的稳定功能
Deno 1.40 还稳定了以下功能:
- Web API:支持
rejectionhandled
事件,改进未处理 Promise 拒绝的处理 - 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 打下基础。开发者应尽快升级以体验更高效、更安全的开发环境。
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 使用Python进行API调用:面向开发人员的分步指南
- Go工程化(五) API 设计下: 基于 protobuf 自动生成 gin 代码
- Python调用股票API获取实时数据
- API在量子计算中的作用
- API请求 – 什么是API请求?
- 给初学者的RESTful API 安全设计指南!
- 如何在 Facebook Developers 上设置 WhatsApp Cloud API
- 支付网关API如何支持小型企业?
- Python调用免费翻译API实现Excel文件批量翻译
- 为开源项目 go-gin-api 增加 WebSocket 模块
- AI编程的风险,如何毁掉你的 API?
- 使用预约调度API的运输管理