Мне интересно, почему реализация дважды одинакового универсального интерфейса c, но с другими параметрами, не обеспечивает правильные сигнатуры в производном классе. Тип параметра generi c опущен.
См. Пример:
interface IEvent { id: number; }
interface IHandle<T> {
handle(event: T): void;
}
class EmailSentEvent implements IEvent {
constructor(public id: number, public address: string) {}
}
class UserRegisteredEvent implements IEvent {
constructor(public id: number) {}
}
class MailHandlerState implements
IHandle<EmailSentEvent>,
IHandle<UserRegisteredEvent>
{
// One implementation is enough to satisfy both interfaces
handle = (event: EmailSentEvent): void => {
};
}
Песочница
Есть ли способ обеспечить реализацию обоих параметров c generi? Спасибо!