Do not use Node and NodeList in rx-lite defintions (#13737)

* Fix https://github.com/DefinitelyTyped/DefinitelyTyped/issues/13733: Do not use `Node` and `NodeList` and instead define `DOMEventTarget`
- Also adds NodeEventTarget support

* Fix lint errors

* Make selector take variable number of arguments

* Make selector take variable number of arguments
This commit is contained in:
Mohamed Hegazy 2017-01-05 09:36:46 -08:00 committed by GitHub
parent ff2d63b83b
commit 5757550c40

22
rx-lite/index.d.ts vendored
View File

@ -649,13 +649,27 @@ declare namespace Rx {
<T>(func: Function, context?: any): (...args: any[]) => Observable<T>;
};
fromEvent<T>(element: NodeList, eventName: string, selector?: (arguments: any[]) => T): Observable<T>;
fromEvent<T>(element: Node, eventName: string, selector?: (arguments: any[]) => T): Observable<T>;
fromEvent<T>(element: { on: (name: string, cb: (e: any) => any) => void; off: (name: string, cb: (e: any) => any) => void }, eventName: string, selector?: (arguments: any[]) => T): Observable<T>;
fromEventPattern<T>(addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (arguments: any[]) => T): Observable<T>;
fromEvent<T>(element: ArrayLike<DOMEventTarget> | DOMEventTarget | NodeEventTarget| NativeEventTarget, eventName: string, selector?: (...args: any[]) => T): Observable<T>;
fromEventPattern<T>(addHandler: (handler: Function) => void, removeHandler: (handler: Function) => void, selector?: (...args: any[]) => T): Observable<T>;
}
interface NodeEventTarget {
addListener: (name: string, cb: (e: any) => any) => void;
}
interface NativeEventTarget {
on: (name: string, cb: (e: any) => any) => void;
off: (name: string, cb: (e: any) => any) => void;
}
interface DOMEventTarget {
addEventListener(type: string, listener: (e: any) => any, useCapture: boolean): void;
removeEventListener(type: string, listener: (e: any) => any, useCapture: boolean): void;
}
}
// time
declare namespace Rx {