Type-safe Event Emitter

TypeScript 🔴 Senior

Definition

Pattern d'event emitter ou les noms d'evenements et leurs payloads sont types statiquement. Garantit la correspondance emit/on a la compilation.

Analogie

Comme un standard telephonique type — chaque extension a un format de message predefini, pas de mauvaise connexion.

Exemple de code

type Events = { login: { userId: string }; logout: void };
class Emitter<T extends Record<string, any>> {
  on<K extends keyof T>(event: K, fn: (data: T[K]) => void) {}
  emit<K extends keyof T>(event: K, data: T[K]) {}
}
const bus = new Emitter<Events>();

Cas d'usage

Systemes event-driven (WebSocket, pub/sub, bus d'evenements) avec garantie de type sur les payloads.

Termes lies

#advanced#pattern#real-world