tldr
安装denoland.vscode-deno 扩展1。然后enableDeno 在特定项目中,比如
<proj-root>/.vscode/settings.json:
{
"deno.enable": true, // enables extension
"deno.lint": true, // inline deno lint diagnostics, requires `deno.unstable`
"deno.unstable": true // also provides unstable type declarations in VS Code
}
从v2.3.0开始,也可以使用deno: Init向导2:
要集成 TS 工作区版本而不是 VS Code 内置版本,请查看linked docs。
1This one 已弃用。
2注意:在新的空项目中,至少有一个来源文件需要存在,向导才能正常工作。
更多详情
扩展有什么作用?
- 在 VS Code 中允许显式的
.ts 扩展
- 解析 URL 导入说明符,例如
"https://deno.land/std@0.56.0/http/server.ts"
- 集成 Deno 运行时类型(例如
Deno.writeFile)
如何解析.ts 模块的类型
使用上述扩展名,VS Code 允许 .ts 文件扩展名用于导入并将 URL 导入解析为 local disk cache。编译器可以使用这些缓存的类型定义进行检查。最后,获取所有源并重新启动 TS 服务器/重新加载 VS Code:
deno cache https://deno.land/std/http/server.ts # fetch and compile from URL
# or main project file
deno cache <your main file>.ts # fetches all its dependencies
server.ts 是Standard Library 的一部分,它只是一个更严格维护的远程.ts 模块集合,因此它也将被正确输入。
如何解析.js 模块的类型
Deno 提供 additional ways 以引用 .d.ts 文件以获取 .js 文件。
在导入代码位置指定类型定义:
// @deno-types="./foo.d.ts"
import * as foo from "./foo.js";
在主机代码位置指定类型定义:
/// <reference types="./foo.d.ts" />
export const foo = "foo";
替代方案:Deno 可以从远程导入中读取自定义的 X-TypeScript-Types HTTP 标头。
如何使用自定义tsconfig.json
项目中给定的
tsconfig.json 文件与 Deno 默认配置合并,例如:
{
"compilerOptions": {
// set a custom, deviant value
"noImplicitAny": false // deno default is true
// (this is just an example - use strong types, whenever possible)
}
}
包括
-c 选项,因此 VS Code 和 Deno CLI 具有相同的编译器设置:
deno run -c ./tsconfig.json main.ts
最简单的选择是在settings.json 中设置"deno.unstable": true (PR) 并重新启动VS Code,参见tldr 部分。
手动替代
cd <your-project>
deno types --unstable > deno.runtime.d.ts
touch tsconfig.json # (1); jsconfig.json for JS projects also possible
VS Code automatically includes deno.runtime.d.ts 与现有的tsconfig.json (1)。
重大变化
vscode-denov1.26.0
扩展名需要在项目的.vscode/settings.json中"deno.enable": true为explicitly enabled(默认为false)。之前,默认值为true。
vscode-deno
在每种情况下(稳定和不稳定)都安装 Deno 类型 - 请参阅 "How to use --unstable types"。