我有一些自定义 .d.ts 文件,我希望 tsc 在编译时选取这些文件。为了完成此任务,我修改 tsconfig.file 以包含以下内容
"typeRoots": [
"../node_modules/@types",
"./app/modules"
]
./app/modules 是我的自定义 .d.ts 文件所在的位置。在 ./app/modules 文件夹中,我有以下文件 myModule.d.ts
export declare module myModule {
function Login();
function Logout();
}
现在在我的其他打字稿文件中,我有以下导入
import { myModule } from 'myModule';
这里我收到以下错误找不到模块“myModule”。
我找到了修复此问题的配置。注意
paths
和 baseUrl
属性:
{
"version": "2.1.5",
"compilerOptions": {
"module": "commonjs",
"target": "ES5",
"removeComments": true,
"preserveConstEnums": true,
"inlineSourceMap": true,
"lib": ["es6", "dom"],
"typeRoots": ["src/subfolder/node_modules/@types"],
"moduleResolution": "node",
"baseUrl": "./",
"paths": {
"*": ["src/subfolder/node_modules/@types/*", "*"]
}
},
"exclude": ["node_modules", "src/subfolder/node_modules"]
}
如果您遇到此问题的目的是向项目添加包含自定义类型声明的文件夹,请尝试使用
"includes"
tsconfig 选项而不是 "typeRoots"
选项。
我一生都无法让
typeRoots
属性按预期运行,但我发现您可以使用 includes
属性来代替。
创建一个文件夹来保存类型声明,而不是将该文件夹路径添加到
typeRoots
tsconfig 选项,而是将其添加到 includes
tsconfig 选项。在我的使用中,一切都按预期运行。
{
"include": ["./src", "./typings"],
}