Type Alias EventPayloadMap<TEvents>

EventPayloadMap: { [K in TEvents]?: any }

Mapa de payloads para eventos.

Clientes podem estender esta interface para definir tipos específicos de payload para cada evento.

Type Parameters

  • TEvents extends string

    União de strings literais dos eventos

type MyEvents = 'login' | 'logout' | 'error';

interface MyEventPayloads extends EventPayloadMap<MyEvents> {
login: { userId: string; timestamp: Date };
logout: { reason: string };
error: { code: number; message: string };
}

const bus = EventBus.create<MyEvents, MyEventPayloads>();
bus.subscribe('login', (payload) => {
// payload é tipado como { userId: string; timestamp: Date }
console.log(payload.userId);
});