Deno 1.22 已发布,主要变化如下:
- 更新默认的类型检查模式
- 移除不稳定的
Deno.emit()
,Deno.formatDiagnostics()
和Deno.applySourceMap()
API Deno
命名空间在 worker 中默认可用- 新增
--no-config
flag Navigator.userAgent
- 升级
Deno.resolveDns()
API - 引入新的
Response.json()
静态方法 - 在 LSP 默认启用 Linting
- 升级不稳定的
Deno.spawn()
API - 更新 test runner
performance.timeOrigin
&performance.toJSON
更新默认的类型检查模式
Deno 目前支持三种类型检查模式
- Full:完整类型检查模式(full type checking)会检查整个项目,包括所有依赖项。如果依赖项包含类型错误,则会进行反馈。
- Local:局部类型检查模式(local type checking)会检查项目中的代码是否存在类型错误,但不针对所有依赖项进行类型检查。
- None:不执行类型检查
在这个版本之前,Deno 使用 Full 作为默认类型检查模式。因此开发者会收到自己能直接控制之外的代码(依赖项)所报告的类型错误。团队认为这个默认值不够合理,所以在新版本将默认模式更改为 Local。
引入新的Response.json()
静态方法
此版本为Response
全局添加了一个新的静态json()
方法,支持从 JSON 结构轻松创建Response
对象。
const json = { hello: "world" };
// Previously:
const body = JSON.stringify(json);
const response = new Response(body, {
headers: { "content-type": "application/json" },
});
// Now:
const response = Response.json(json);
在 LSP 默认启用 Linting
Deno v1.22 默认启用 IDE/编辑器中deno lsp
的 linting。此设置仍然可以禁用,但在大多数项目中,这意味着需要较少的 IDE/编辑器配置,因为大多数项目都启用了 linting。
详情查看发布公告。