TypeScript · Middle · Запитання 73 з 75
Як реалізувати типобезпечний event emitter?
type Events = { login: { userId: string }; logout: undefined };
on<K extends keyof Events>(event: K, cb: (payload: Events[K]) => void): void;- ✓Правильна відповідь: Описати події в типі-мапі й використати узагальнений ключ, щоб тип payload ішов за іменем події
- 2Використовувати події типу
stringі payloadany - 3Event emitter не можна типізувати
Пояснення
Друкарська помилка в імені події чи неправильний payload стають помилками компіляції.