У меня есть такие типы, где я перезаписываю один тип при расширении интерфейса:
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
interface HTMLEvent<T> extends Omit<Event, 'target'> {
target: T;
}
и теперь я хочу создать тип EventType, который будет принимать тип события, например MouseEvent и целевой тип.
Я пробовал это:
interface EventType<E, T> extends Omit<E, 'target'> {
target: T;
}
const e: EventType<MouseEvent, HTMLButtonElement>;
но получил ошибку:
Интерфейс может расширять только тип объекта или пересечение объекта
типы со статически известными членами.
Я думаю, что мне нужна функция, которая создаст тип.
Возможен ли интерфейс EventType
в TypeScript? Можно ли иметь один универсальный тип без необходимости указывать универсальный интерфейс для каждого типа события.