错误 TS2688:找不到“ioredis”的类型定义文件

Fau*_*man 3 javascript tsconfig ioredis nestjs

我有一个使用 NestJS 的项目。但是在尝试添加某些模块时它显示错误。

error TS2688: Cannot find type definition file for 'ioredis'.
  The file is in the program because:
    Entry point for implicit type library 'ioredis'
Run Code Online (Sandbox Code Playgroud)

这是我的 tsconfig

{
    "compilerOptions": {
        "module": "commonjs",
        "declaration": false,
        "noImplicitAny": false,
        "removeComments": true,
        "noLib": false,
        "allowSyntheticDefaultImports": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es2017",
        "sourceMap": true,
        "allowJs": true,
        "outDir": "./dist",
        "baseUrl": "./",   
        "paths": {
            "@core/*": ["src/core/*"],
            "@main/*": ["src/main/*"],
            "@migrations/*": ["src/migrations/*"],
            "@modules/*": ["src/modules/*"],
            "@shared/*": ["src/shared/*"]
        },
        "incremental": true
    },
    "exclude": [
        "node_modules", "dist"
    ]
}
Run Code Online (Sandbox Code Playgroud)

如何解决该错误?

Jou*_*usi 12

如果您使用ioredis@4,它没有内置的 TypeScript 定义。你必须安装@types/ioredis

npm install --save-dev @types/ioredis@4.28.10
Run Code Online (Sandbox Code Playgroud)

如果您正在ioredis@5使用@nestjs/bull,则该bull软件包不支持 ioredis@5. 你必须降级ioredis

npm install --save ioredis@4.28.5
npm install --save-dev @types/ioredis@4.28.10
Run Code Online (Sandbox Code Playgroud)

更新:从4.10.2开始bull支持ioredis@5