Я думаю, что это больше общий вопрос об определениях TypeScript, но контекст, который я использую, связан с пакетом websockets / ws.
У меня есть некоторый код, определенный следующим образом:
import { LoggerInstance } from "winston";
import "ws";
export abstract class MyClass {
private _logger: LoggerInstance;
private _webSocket: WebSocket;
constructor(logger: LoggerInstance webSocket: WebSocket) {
this._logger = logger;
this._webSocket = webSocket;
this.configureWebSocket();
}
private configureWebSocket(): void {
this._webSocket.addEventListener("open", (event: Event) => {
this._logger.info("WebSocket connection opened");
});
this._webSocket.addEventListener("message", (event: MessageEvent) => {
this._logger.debug("WebSocket message received");
});
this._webSocket.addEventListener("error", (event) => {
this._logger.error("WebSocket error encountered");
});
this._webSocket.addEventListener("close", (event: CloseEvent) => {
this._logger.info("WebSocket connection closed");
});
}
}
Но я хотел бы иметь возможность вывести само сообщение об ошибке - глядя на определение @ types / ws, я могувот такое определение:
addEventListener(method: 'error', cb?: (event: {error: any, message: any, type: string, target: WebSocket }) => void): void;
Однако я не уверен, как отформатировать мой код таким образом, чтобы были доступны такие свойства, как «тип» и «сообщение».
Я пытался передать их как параметры в мою анонимную функцию, например так:
this._webSocket.addEventListener("error", (event, message) => {
, но тогда TypeScript жалуется, что сигнатура функции не соответствует ожидаемой сигнатуре.
Если бы кто-нибудь мог объяснить, как я могу это сделать, или указать мне на какую-нибудь соответствующую документацию, я был бы благодарен.
Спасибо.