Type-safe event emitter for pub/sub communication.
// Define event typestype GameEvents = { 'player:hit': (damage: number) => void; 'game:over': () => void; 'score:change': (score: number, combo: number) => void;};const events = new EventEmitter<GameEvents>();// Subscribeevents.on('player:hit', (dmg) => console.log(`Hit for ${dmg}`));events.once('game:over', () => showGameOver());// Emitevents.emit('player:hit', 10);events.emit('score:change', 100, 3);// Unsubscribeevents.off('player:hit', handler); Copy
// Define event typestype GameEvents = { 'player:hit': (damage: number) => void; 'game:over': () => void; 'score:change': (score: number, combo: number) => void;};const events = new EventEmitter<GameEvents>();// Subscribeevents.on('player:hit', (dmg) => console.log(`Hit for ${dmg}`));events.once('game:over', () => showGameOver());// Emitevents.emit('player:hit', 10);events.emit('score:change', 100, 3);// Unsubscribeevents.off('player:hit', handler);
Emit event to all listeners.
Unsubscribe from event.
Subscribe to event.
Subscribe once, auto-unsubscribe after first emit.
Static
Get singleton instance.
Type-safe event emitter for pub/sub communication.
Example