Estoy tratando de implementar protectores de tipos de eventos, ya que están disponibles en Socket.io v4 .
Este es mi intento de crear una función onAndOff , que escucha un evento de socket determinado y devuelve una devolución de llamada de limpieza (luego se usará en un useEffect ):
// somewhere in another file: export const socket: Socket<ServerToClient, ClientToServer> = io(); function onAndOff< Event extends keyof ServerToClient = keyof ServerToClient, Callback = ServerToClient[Event] >(event: Event, callback: Callback) { socket.on(event, callback); return () => socket.off(event, callback); } Pero mi IDE marca los argumentos de callback de llamada como un error:
TS2345: el argumento de tipo 'Callback' no se puede asignar al parámetro de tipo 'FallbackToUntypedListener'.
Parece ser un error genérico de TypeScript, pero no estoy seguro de qué tiene de malo esta función de contenedor.