15 / 23
Как создать type-safe event emitter?
Создай интерфейс-карту событий, где ключи -- названия событий, а значения -- типы payload. Затем типизируй методы on, off, emit через generics с keyof, чтобы TypeScript проверял имена событий и аргументы на этапе компиляции. Это исключает опечатки в именах событий и неправильные данные.