gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:51:47 24 4
gpt4 key购买 nike

我试图把这个脚本放在提高系统的安全性,但 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com