import WebSocket from 'ws';
global.WebsocketServer = new WebSocket.Server({ server });
global.WebsocketServer.on('connection', (socket, request) => {
socket.attempt = ...
});
然后ts报:类型“WebSocket”上不存在属性“attempt”,我知道这只是ts的检查,实际运行这样没问题,但是我想把attempt纳入ts的代码检查范围,规避不必要的bug,在ws官方定的的d.ts中
declare namespace WebSocket {
...
class Server extends events.EventEmitter {
...
on(event: 'connection', cb: (this: Server, socket: WebSocket, request: http.IncomingMessage) => void): this;
...
}
...
}
connection里定义的socket: WebSocket
里面的WebSocket
是一个class
declare class WebSocket extends events.EventEmitter {
...
}
并且这个class没有在namespace WebSocket
中,现在报类型“WebSocket”上不存在属性“attempt”显然是class WebSocket
上没有attempt,这个好像也没法用ts的类型合并啊。
问:怎么在自己的d.ts中为WebSocket加入attempt的定义,路过的大神请帮忙看看,谢谢!!!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…