Skip to content

weixin-ts / bot/src / TypedEventEmitter

Class: TypedEventEmitter<Events> ​

Defined in: bot/src/events.ts:32

A typed event emitter that provides type-safe event registration and emission. Supports on, off, once, and emit methods with full type inference.

Example ​

ts
type MyEvents = {
  message: [text: string]
  error: [err: Error]
  close: []
}

const emitter = new TypedEventEmitter<MyEvents>()
emitter.on('message', (text) => console.log(text)) // text is typed as string
emitter.emit('message', 'hello')

Extended by ​

Type Parameters ​

Events ​

Events = any

Constructors ​

Constructor ​

new TypedEventEmitter<Events>(): TypedEventEmitter<Events>

Returns ​

TypedEventEmitter<Events>

Methods ​

emit() ​

emit<K>(event, ...args): void

Defined in: bot/src/events.ts:91

Emit an event, calling all registered listeners with the provided arguments.

Type Parameters ​

K ​

K extends string

Parameters ​

event ​

K

The event name to emit

args ​

...Events[K] extends any[] ? any[any] : any[]

Arguments to pass to the listeners

Returns ​

void


off() ​

off<K>(event, handler): this

Defined in: bot/src/events.ts:59

Remove an event listener.

Type Parameters ​

K ​

K extends string

Parameters ​

event ​

K

The event name

handler ​

(...args) => void

The handler to remove

Returns ​

this

this for chaining


on() ​

on<K>(event, handler): this

Defined in: bot/src/events.ts:42

Register an event listener.

Type Parameters ​

K ​

K extends string

Parameters ​

event ​

K

The event name to listen for

handler ​

(...args) => void

The callback function

Returns ​

this

this for chaining


once() ​

once<K>(event, handler): this

Defined in: bot/src/events.ts:77

Register a one-time event listener. The handler is automatically removed after the first invocation.

Type Parameters ​

K ​

K extends string

Parameters ​

event ​

K

The event name

handler ​

(...args) => void

The callback function (called at most once)

Returns ​

this

this for chaining


removeAllListeners() ​

removeAllListeners<K>(event?): this

Defined in: bot/src/events.ts:105

Remove all listeners for a specific event, or all listeners if no event is specified.

Type Parameters ​

K ​

K extends string

Parameters ​

event? ​

K

Optional event name. If omitted, removes all listeners.

Returns ​

this

Released under the MIT License.