Но возможно так делать не принято и сейчас предпочтительнее принципиально другой подход.
, ну и при наличии у вас желания и возможности был бы рад фидбеку по коду (как можно делать, и как лучше не делать).
on: Emitter<T>['on'] = (eventName, fn) => {
this.emitter.on(eventName, fn);
}
end: [undefined];
https://github.com/type-challenges/type-challenges