首页 > 解决方案 > 如何让 VScode 识别 d.ts 文件而不直接引用它们

问题描述

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

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

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

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

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

标签: typescriptvisual-studio-code

解决方案


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

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

{
    "compilerOptions": {
        "typeRoots" : ["./type-definitions-folder"]
    }
}

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

{
    "compilerOptions": {
        "typeRoots" : ["./node_modules/@types", "./type-definitions-folder"]
    }
}

推荐阅读