似乎我的打字稿编译器未在模块(./node_modules//index.d.ts)中检测到模块的DefinedTypes文件,而是在@types文件夹(./node_modules/@types)中检测到它们//index.d.ts)。
例如,对于express-validator,模块带有其定义的类型(请参阅:https://github.com/milkeg/testDefinedType/blob/master/node_modules/express-validator/index.d.ts),但是当我尝试使用tsc命令进行编译时,出现以下错误:
app.ts:5:28 - error TS2307: Cannot find module 'express-validator'.
5 import * as validator from 'express-validator';
我的tsconfig.json文件是:
{
"compilerOptions": {
"outDir": "./build",
"allowJs": true,
"target": "es2018",
"alwaysStrict": true,
},
"include": [
"./**/*",
],
"exclude": [
"./node_modules/**/*",
"./build/**/*"
],
}
我试图将“ ./node_modules/**/*.d.ts”添加到include选项,但这无济于事。
示例回购:https://github.com/milkeg/testDefinedType
我应该做些什么更改以确保tsc考虑到模块本身内的.d.ts文件(不仅限于./node_modules/@types/*下的文件)?
答案 0 :(得分:1)
只需添加
"typeRoots": [
"./node_modules/@types",
"./path/to/custom/dtsfolder/"
],
发送到您的tsconfig.json
。