TS7016:找不到模块“ faker / locale / en_CA”的声明文件

时间:2018-08-01 20:58:04

标签: typescript

我收到此错误:

  

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没问题。

1 个答案:

答案 0 :(得分:1)

尝试从tsconfig.json中删除"types" : ["node"]。根据{{​​3}},该行表示您不希望TypeScript加载node以外的任何程序包的类型。