import { Observable, fromEvent } from 'rxjs'; import { EventTargetLike } from 'rxjs/internal-compatibility'; export class FromEventObservable extends Observable { /* tslint:disable:max-line-length */ static create(target: EventTargetLike, eventName: string): Observable; static create(target: EventTargetLike, eventName: string, selector: ((...args: any[]) => T)): Observable; static create(target: EventTargetLike, eventName: string, options: EventListenerOptions): Observable; static create(target: EventTargetLike, eventName: string, options: EventListenerOptions, selector: ((...args: any[]) => T)): Observable; /* tslint:enable:max-line-length */ static create(target: EventTargetLike, eventName: string, options?: EventListenerOptions | ((...args: any[]) => T), selector?: ((...args: any[]) => T)): Observable { return fromEvent(target, eventName, options as EventListenerOptions, selector); } }