如何让 VScode 识别 d.ts 文件而不直接引用它们

dar*_*uby 11 typescript visual-studio-code

我有一个用create-react-app-ts 创建的项目

我还有一组d.ts文件,它们是从 JSON 模式生成的接口。他们为远程 API 定义了一些接口。

我希望这些d.ts文件在整个项目中“全局”可用,而无需通过文件名直接引用它们。有点类似于Promise<T>定义在全球范围内可用的方式。

我试过修改tsconfig,添加path/to/**/*.dtsinclude,以及在files. 我也尝试添加路径"typeRoots"compilerOptopns

这使得项目可以编译,但 VSCode 没有为这些接口提供 IntelliSense,并强调它们为未知。

dot*_*tom 5

基于tsconfig 编译器选项,您应该使用 option typeRoots这部分文档描述了@typestypeRoots和之间的区别types

对于您的特定情况,此tsconfig.json文件应该可以解决问题:

{
    "compilerOptions": {
        "typeRoots" : ["./type-definitions-folder"]
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您还使用来自 npm 的类型定义,您还应该添加./node_modules/@types.

{
    "compilerOptions": {
        "typeRoots" : ["./node_modules/@types", "./type-definitions-folder"]
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我应该更新我的帖子以提及我也尝试过该选项,就像我说的项目构建一样,所以不是 `tsc` 问题,但 VSCode 智能感知仍然*不起作用* (8认同)
  • 打开 VS 命令输入(mac 中为 cmd+shift+p)并输入“typescript: restart ts server”,然后从列表中选择选项。这将重新启动 VS typescript 引擎,检测新配置。 (4认同)