我有一个节点代码库,我想将其迁移到打字稿。因此,我要做的第一件事是添加// @ ts-check并修复打字稿所遇到的问题。除了这个问题,我可以解决所有问题。
为了将发送过多冗余请求的客户端列入黑名单,我需要客户端的IP地址。因此,我使用下面的中间件将客户端的ip地址添加到请求对象。
app.use((request, _, next) => {
const ip = request.get('x-real-ip')
if (ip) {
Object.defineProperties(request, { clientIP: { value: ip, writable: false } })
} else {
Object.defineProperties(request, { clientIP: { value:request.socket.remoteAddress, writable: false } })
}
next()
})
但是当我想在其他地方访问clientIP属性时,打字稿给出以下错误:
“请求”类型上不存在属性“ clientIP”。
我应该怎么做才能使此错误消失? 谢谢