我有一些自定义.D.TS文件,我希望TSC在编译时拾取这些文件。为了完成此操作,我将tsconfig.file修改为包括以下
"typeRoots": [
"../node_modules/@types",
"./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"],
}