Why not just extend the interface above, rather than to copy/paste it? See https://github.com/microsoft/TypeScript/issues/60008

interface TypedEventTarget<TEventMap extends EventMap> {
    addEventListener<const TEventType extends string | number | symbol>(
        type: TEventType,
        listener: Listener<TEventMap[TEventType]>,
        options?: boolean | AddEventListenerOptions,
    ): void;
    dispatchEvent<TEventType extends string | number | symbol>(
        ev: TEventMap[TEventType],
    ): void;
    removeEventListener<const TEventType extends string | number | symbol>(
        type: TEventType,
        listener: Listener<TEventMap[TEventType]>,
        options?: boolean | EventListenerOptions,
    ): void;
}

Type Parameters

Methods