Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback
Latest
interface TypedEventEmitter
import { type TypedEventEmitter } from "https://deno.land/x/discord_rpc_deno@v1.1.2/src/utils/TypedEventEmitter.ts";

Type-safe event emitter.

Use it like this:

type MyEvents = {
  error: (error: Error) => void;
  message: (from: string, content: string) => void;
}

const myEmitter = new EventEmitter() as TypedEmitter<MyEvents>;

myEmitter.emit("error", "x")  // <- Will catch this type error;

Methods

addListener<E extends keyof Events>(event: E, listener: Events[E]): this
on<E extends keyof Events>(event: E, listener: Events[E]): this
once<E extends keyof Events>(event: E, listener: Events[E]): this
prependListener<E extends keyof Events>(event: E, listener: Events[E]): this
prependOnceListener<E extends keyof Events>(event: E, listener: Events[E]): this
off<E extends keyof Events>(event: E, listener: Events[E]): this
removeAllListeners<E extends keyof Events>(event?: E): this
removeListener<E extends keyof Events>(event: E, listener: Events[E]): this
emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): boolean
eventNames(): (keyof Events | string | symbol)[]
rawListeners<E extends keyof Events>(event: E): Events[E][]
listeners<E extends keyof Events>(event: E): Events[E][]
listenerCount<E extends keyof Events>(event: E): number
getMaxListeners(): number
setMaxListeners(maxListeners: number): this