diff --git a/src/Observable.ts b/src/Observable.ts index e692604036..6cd6d2a38a 100644 --- a/src/Observable.ts +++ b/src/Observable.ts @@ -133,8 +133,8 @@ export default class Observable implements CoreOperators { } // static method stubs - static combineLatest: (...observables: (Observable | ((...values: Array) => T) | Scheduler)[]) => Observable; - static concat: (...observables: (Observable | Scheduler)[]) => Observable; + static combineLatest: (...observables: Array | ((...values: Array) => T) | Scheduler>) => Observable; + static concat: (...observables: Array | Scheduler>) => Observable; static defer: (observableFactory: () => Observable) => Observable; static empty: (scheduler?: Scheduler) => Observable; static forkJoin: (...observables: Observable[]) => Observable; @@ -144,13 +144,13 @@ export default class Observable implements CoreOperators { static fromEventPattern: (addHandler: (handler:Function)=>void, removeHandler: (handler:Function) => void, selector?: (...args:Array) => T) => Observable; static fromPromise: (promise: Promise, scheduler?: Scheduler) => Observable; static interval: (interval: number, scheduler?: Scheduler) => Observable; - static merge: (...observables: (Observable | Scheduler | number)[]) => Observable; + static merge: (...observables: Array | Scheduler | number>) => Observable; static never: () => Observable; - static of: (...values: (T | Scheduler)[]) => Observable; + static of: (...values: Array) => Observable; static range: (start: number, end: number, scheduler?: Scheduler) => Observable; static throw: (error: T) => Observable; static timer: (dueTime: number, period?: number | Scheduler, scheduler?: Scheduler) => Observable; - static zip: (...observables: (Observable | ((...values: Array) => T)) []) => Observable; + static zip: (...observables: Array | ((...values: Array) => T)>) => Observable; // core operators @@ -161,7 +161,7 @@ export default class Observable implements CoreOperators { bufferWhen: (closingSelector: () => Observable) => Observable; catch: (selector: (err: any, source: Observable, caught: Observable) => Observable) => Observable; combineAll: (project?: (...values: Array) => R) => Observable; - combineLatest: (...observables: (Observable | ((...values: Array) => R))[]) => Observable; + combineLatest: (...observables: Array | ((...values: Array) => R)>) => Observable; concat: (...observables: any[]) => Observable; concatAll: () => Observable; concatMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; @@ -226,7 +226,7 @@ export default class Observable implements CoreOperators { windowTime: (windowTimeSpan: number, windowCreationInterval?: number, scheduler?: Scheduler) => Observable>; windowToggle: (openings: Observable, closingSelector?: (openValue: O) => Observable) => Observable>; windowWhen: (closingSelector: () => Observable) => Observable>; - withLatestFrom: (...observables: (Observable | ((...values: Array) => R))[]) => Observable; - zip: (...observables: (Observable | ((...values: Array) => R))[]) => Observable; + withLatestFrom: (...observables: Array | ((...values: Array) => R)>) => Observable; + zip: (...observables: Array | ((...values: Array) => R)>) => Observable; zipAll: (project?: (...values: Array) => R) => Observable; } \ No newline at end of file diff --git a/src/observables/ArrayObservable.ts b/src/observables/ArrayObservable.ts index baf25b4442..c1eba271ec 100644 --- a/src/observables/ArrayObservable.ts +++ b/src/observables/ArrayObservable.ts @@ -9,7 +9,7 @@ export default class ArrayObservable extends Observable { return new ArrayObservable(array, scheduler); } - static of(...array: (T | Scheduler)[]): Observable { + static of(...array: Array): Observable { let scheduler = array[array.length - 1]; if (scheduler && typeof scheduler.schedule === 'function') { array.pop(); diff --git a/src/operators/combineLatest-static.ts b/src/operators/combineLatest-static.ts index fb498e49bc..411247f2d6 100644 --- a/src/operators/combineLatest-static.ts +++ b/src/operators/combineLatest-static.ts @@ -13,7 +13,7 @@ import Scheduler from '../Scheduler'; * @returns {Observable} an observable of other projected values from the most recent values from each observable, or an array of each of * the most recent values from each observable. */ -export default function combineLatest(...observables: (Observable | ((...values: Array) => R) | Scheduler)[]): Observable { +export default function combineLatest(...observables: Array | ((...values: Array) => R) | Scheduler>): Observable { let project, scheduler; if (typeof (observables[observables.length - 1]).schedule === 'function') { diff --git a/src/operators/combineLatest.ts b/src/operators/combineLatest.ts index 029fd0eb82..c0bfc83612 100644 --- a/src/operators/combineLatest.ts +++ b/src/operators/combineLatest.ts @@ -12,7 +12,7 @@ import { CombineLatestOperator } from './combineLatest-support'; * @returns {Observable} an observable of other projected values from the most recent values from each observable, or an array of each of * the most recent values from each observable. */ -export default function combineLatest(...observables: (Observable|((...values: any[]) => R))[]): Observable { +export default function combineLatest(...observables: Array | ((...values: Array) => R)>): Observable { observables.unshift(this); let project; if (typeof observables[observables.length - 1] === 'function') { diff --git a/src/operators/concat-static.ts b/src/operators/concat-static.ts index fba9f74145..fd958d15d5 100644 --- a/src/operators/concat-static.ts +++ b/src/operators/concat-static.ts @@ -11,7 +11,7 @@ import { CoreOperators } from '../CoreOperators'; * @params {Scheduler} [scheduler] an optional scheduler to schedule each observable subscription on. * @returns {Observable} All values of each passed observable merged into a single observable, in order, in serial fashion. */ -export default function concat(...observables: (Observable|Scheduler)[]): Observable { +export default function concat(...observables: Array | Scheduler>): Observable { let scheduler: Scheduler = immediate; let args = observables; const len = args.length; diff --git a/src/operators/merge-static.ts b/src/operators/merge-static.ts index 25b8b716b3..04bc1c9fc6 100644 --- a/src/operators/merge-static.ts +++ b/src/operators/merge-static.ts @@ -4,7 +4,7 @@ import ArrayObservable from '../observables/ArrayObservable'; import { MergeAllOperator } from './mergeAll-support'; import immediate from '../schedulers/immediate'; -export default function merge(...observables: (Observable|Scheduler|number)[]): Observable { +export default function merge(...observables: Array | Scheduler | number>): Observable { let concurrent = Number.POSITIVE_INFINITY; let scheduler: Scheduler = immediate; let last: any = observables[observables.length - 1]; diff --git a/src/operators/withLatestFrom.ts b/src/operators/withLatestFrom.ts index e3e5a64910..7c741bdca2 100644 --- a/src/operators/withLatestFrom.ts +++ b/src/operators/withLatestFrom.ts @@ -26,7 +26,7 @@ import subscribeToResult from '../util/subscribeToResult'; * result: ---([a,d,x])---------([b,e,y])--------([c,f,z])---| * ``` */ -export default function withLatestFrom(...args: (Observable|((...values: any[]) => Observable))[]): Observable { +export default function withLatestFrom(...args: Array | ((...values: Array) => R)>): Observable { let project; if (typeof args[args.length - 1] === 'function') { project = args.pop(); diff --git a/src/operators/zip-static.ts b/src/operators/zip-static.ts index 7e5c2f36c5..c6e9d78e66 100644 --- a/src/operators/zip-static.ts +++ b/src/operators/zip-static.ts @@ -2,7 +2,7 @@ import Observable from '../Observable'; import ArrayObservable from '../observables/ArrayObservable'; import { ZipOperator } from './zip-support'; -export default function zip(...observables: (Observable | ((...values: Array) => R))[]): Observable { +export default function zip(...observables: Array | ((...values: Array) => R)>): Observable { const project = <((...ys: Array) => R)> observables[observables.length - 1]; if (typeof project === 'function') { observables.pop(); diff --git a/src/operators/zip.ts b/src/operators/zip.ts index ecb9653d99..9170028b3c 100644 --- a/src/operators/zip.ts +++ b/src/operators/zip.ts @@ -1,7 +1,7 @@ import Observable from '../Observable'; import zip from './zip-static'; -export default function zipProto(...observables: (Observable | ((...values: Array) => R))[]): Observable { +export default function zipProto(...observables: Array | ((...values: Array) => R)>): Observable { observables.unshift(this); return zip.apply(this, observables); } \ No newline at end of file