33 lines
930 B
TypeScript
33 lines
930 B
TypeScript
|
module Rx {
|
||
|
// Type alias for observables and promises
|
||
|
export type ObservableOrPromise<T> = IObservable<T> | Observable<T> | Promise<T>;
|
||
|
|
||
|
export type ArrayLike<T> = Array<T> | { length: number;[index: number]: T; };
|
||
|
|
||
|
// Type alias for arrays and array like objects
|
||
|
export type ArrayOrIterable<T> = ArrayLike<T>;
|
||
|
|
||
|
/**
|
||
|
* Promise A+
|
||
|
*/
|
||
|
export interface Promise<T> {
|
||
|
then<R>(onFulfilled: (value: T) => R|Promise<R>, onRejected: (error: any) => Promise<R>): Promise<R>;
|
||
|
then<R>(onFulfilled: (value: T) => R|Promise<R>, onRejected?: (error: any) => R): Promise<R>;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Promise A+
|
||
|
*/
|
||
|
export interface IPromise<T> extends Promise<T> { }
|
||
|
|
||
|
/**
|
||
|
* Represents a push-style collection.
|
||
|
*/
|
||
|
export interface IObservable<T> { }
|
||
|
|
||
|
/**
|
||
|
* Represents a push-style collection.
|
||
|
*/
|
||
|
export interface Observable<T> extends IObservable<T> { }
|
||
|
}
|