diff --git a/lib/index.ts b/lib/index.ts index 81259dad2e..62c457412e 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -168,7 +168,7 @@ interface ServerOptions extends EngineAttachOptions { export class Server< ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, - ServerSideEvents extends EventsMap = {} + ServerSideEvents extends EventsMap = DefaultEventsMap > extends StrictEventEmitter< ServerSideEvents, EmitEvents, diff --git a/lib/namespace.ts b/lib/namespace.ts index 4e472c1d4f..1e8a26cdd3 100644 --- a/lib/namespace.ts +++ b/lib/namespace.ts @@ -50,7 +50,7 @@ export const RESERVED_EVENTS: ReadonlySet = new Set< export class Namespace< ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, - ServerSideEvents extends EventsMap = {} + ServerSideEvents extends EventsMap = DefaultEventsMap > extends StrictEventEmitter< ServerSideEvents, EmitEvents, @@ -306,9 +306,8 @@ export class Namespace< * * @private */ - _onServerSideEmit(args: any[]) { - const event = args.shift(); - this.emitUntyped(event, args); + _onServerSideEmit(args: [eventName: string, ...args: any[]]) { + super.emitUntyped.apply(this, args); } /** diff --git a/lib/parent-namespace.ts b/lib/parent-namespace.ts index 2c09d8b728..2ad63f4cf5 100644 --- a/lib/parent-namespace.ts +++ b/lib/parent-namespace.ts @@ -11,7 +11,7 @@ import type { BroadcastOptions } from "socket.io-adapter"; export class ParentNamespace< ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, - ServerSideEvents extends EventsMap = {} + ServerSideEvents extends EventsMap = DefaultEventsMap > extends Namespace { private static count: number = 0; private children: Set< diff --git a/lib/socket.ts b/lib/socket.ts index 40098d6901..c38c18d82f 100644 --- a/lib/socket.ts +++ b/lib/socket.ts @@ -111,7 +111,7 @@ export interface Handshake { export class Socket< ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, - ServerSideEvents extends EventsMap = {} + ServerSideEvents extends EventsMap = DefaultEventsMap > extends StrictEventEmitter< ListenEvents, EmitEvents, diff --git a/test/socket.io.test-d.ts b/test/socket.io.test-d.ts index deed33d62c..321cd65b27 100644 --- a/test/socket.io.test-d.ts +++ b/test/socket.io.test-d.ts @@ -117,7 +117,9 @@ describe("server", () => { it("does not accept arguments of wrong types", (done) => { const srv = createServer(); - const sio = new Server(srv); + const sio = new Server( + srv + ); expectError(sio.on("random", (a, b, c) => {})); srv.listen(() => { expectError(sio.on("wrong name", (s) => {}));