Event Emitter с Type-safe Events

Сложная

Создайте типизированный EventEmitter для Hack Frontend приложения. События должны быть строго типизированы с правильными payload типами.

Требования:

  • on/emit методы с автокомплитом событий
  • Payload типы должны соответствовать событию
  • Невозможно emit с неправильным payload

Примеры:

Input 1: emitter.on("courseCompleted", (data) => ...)
Output 1: data: { courseId: string; userId: number }
Output
Run your code to see results.