javascript - “new”表达式,其目标缺少构造签名,隐式具有 'any' 类型

标签 javascript node.js typescript back

我尝试放置此脚本以提高系统的安全性,但它在 typescript 中出现错误,在这种情况下,我尝试将其放置在 app.ts 中

obs:此代码是尝试将 Nodejs 中的脚本转换为 TypeScript

脚本

import express from 'express';
import helmet from 'helmet';
import redis from 'redis';
import RateLimit from 'express-rate-limit';
import RateLimitRedis from 'rate-limit-redis';
import { resolve } from 'path';
import routes from './routes';

import ErrorHandler from './app/middlewares/errorHandler';

 class App {
  public server = express();

  constructor() {
    this.middlewares();
    this.routes();
    this.errorHandlers();
  }

  middlewares() {
    this.server.use(express.json());
    this.server.use(helmet());

    if (process.env.NODE_ENV === 'production') {
      this.server.use(
        new RateLimit({
          store: new RateLimitRedis({
            client: redis.createClient({
              host: process.env.REDIS_HOST,
              port: process.env.REDIS_PORT,
            }),
          }),
          windowMs: 1000 * 60 * 15,
          max: 100,
        }),
      );
    }
  }

有错误的区域

new RateLimit({
      store: new RateLimitRedis({
        client: redis.createClient({
          host: process.env.REDIS_HOST,
          port: process.env.REDIS_PORT,
        }),
      }),
      windowMs: 1000 * 60 * 15,
      max: 100,
    }),

错误信息

“new”表达式的目标缺少构造签名,隐式具有“any”类型。

最佳答案

您应该为这些包添加类型描述:

npm i @types/express-rate-limit --save-dev
npm i @types/rate-limit-redis --save-dev

这也适用于所有其他安装包。如果您的包没有相应的类型定义包,那么您应该自己创建它。

关于javascript - “new”表达式,其目标缺少构造签名,隐式具有 'any' 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64063434/

相关文章:

javascript - 如何编写 Jest 测试脚本来检查常量的值

jquery - 如何在 Electron 中使用 fs 保存 PDF 文件?

c++ - 错误LNK2001 : unresolved external symbol in C++ with Node-Gyp

angular - 如何在子组件 Controller 类中捕获@input参数

javascript - 同位素和 javascript - 添加新元素后元素不再可点击

javascript - HTML - 同一输入上的文本和数字的大小限制

javascript - 如何通过复选框隐藏/显示显示具有不同标题的相同 div

node.js - cross-env 命令在 nodejs 中如何工作?

reactjs - 不能给函数组件警告 - 即使将 forwardRef() 与样式组件一起使用

typescript - 如何在 typescript 中定义 Sequelize 关联?