跳到主要内容

EventEmitter API

事件发射器。

构造函数

constructor<T extends Record<string, unknown>>()

方法

on()

添加事件监听器。

on<K extends keyof T>(
eventName: K,
listener: (event: T[K]) => void
): () => void

once()

添加一次性监听器。

once<K extends keyof T>(
eventName: K,
listener: (event: T[K]) => void
): () => void

off()

移除事件监听器。

off<K extends keyof T>(
eventName: K,
listener: (event: T[K]) => void
): void

emit()

触发事件。

emit<K extends keyof T>(eventName: K, event: T[K]): void

removeAllListeners()

移除所有监听器。

removeAllListeners<K extends keyof T>(eventName?: K): void

示例

import { EventEmitter } from 'mapjar';

interface MyEvents {
click: { x: number; y: number };
move: { x: number; y: number };
}

const emitter = new EventEmitter<MyEvents>();

emitter.on('click', (event) => {
console.log(event.x, event.y);
});

emitter.emit('click', { x: 100, y: 200 });