diff --git a/src/index.ts b/src/index.ts index 5365b6e..c04db0b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -88,13 +88,13 @@ export default function mitt<Events extends Record<EventType, unknown>>( * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler * @memberOf mitt */ - emit<Key extends keyof Events>(type: Key, evt?: Events[Key]) { + emit<Key extends keyof Events>(type: Key, ...evt?: Events[Key]) { let handlers = all!.get(type); if (handlers) { (handlers as EventHandlerList<Events[keyof Events]>) .slice() .map((handler) => { - handler(evt!); + handler(...evt!); }); } @@ -103,7 +103,7 @@ export default function mitt<Events extends Record<EventType, unknown>>( (handlers as WildCardEventHandlerList<Events>) .slice() .map((handler) => { - handler(type, evt!); + handler(type, ...evt!); }); } } diff --git a/test/index_test.ts b/test/index_test.ts index ba1dbff..6a0055f 100644 --- a/test/index_test.ts +++ b/test/index_test.ts @@ -197,5 +197,13 @@ describe('mitt#', () => { inst.emit('bar', eb); expect(star).to.have.been.calledOnce.and.calledWith('bar', eb); }); + + it('spreaded arguments', () => { + const Func = spy(); + events.set('Func', [Func]); + + inst.emit('Func', ...[1,2,3]); + expect(Func).to.have.been.called.and.calledWith(1,2,3); + }); }); });