我收到此错误:
TS7016:找不到模块'faker / locale / en_CA'的声明文件。 '... / myproject / node_modules / faker / locale / en_CA.js'隐式具有'any'类型。
使用以下代码:
import * as faker from 'faker/locale/en_CA';
问题是,我安装了@types/faker
,并且可以看到node_modules/@types/faker/index.d.ts
实际上包括:
declare module "faker/locale/en_CA" {
export = fakerStatic;
}
因此已经声明了模块 ,但TS由于某种原因找不到它。
这是我的tsconfig:
{
"compilerOptions": {
"strict": true,
"importHelpers": false,
"inlineSources": true,
"noEmitOnError": true,
"pretty": true,
"module": "commonjs",
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"removeComments": true,
"preserveConstEnums": false,
"sourceMap": true,
"lib": ["es2017","esnext.asynciterable"],
"skipLibCheck": true,
"outDir": "dist",
"target": "es2018",
"declaration": true,
"types" : ["node"],
"resolveJsonModule": true,
"esModuleInterop": false,
"baseUrl": ".",
"paths": {
"*": ["types/*"]
}
},
"files": [
"src/main"
],
"exclude": [
"node_modules"
]
}
我想念什么吗?
请注意
import * as faker from 'faker';
工作正常。
VSCode和PhpStorm都发现'faker/locale/en_CA'
没问题,只是tsc
没问题。
答案 0 :(得分:1)
尝试从tsconfig.json中删除"types" : ["node"]
。根据{{3}},该行表示您不希望TypeScript加载node
以外的任何程序包的类型。