|
1 | 1 | import { Observable } from '../Observable';
|
2 |
| -import { ObservableInput, SchedulerLike } from '../types'; |
| 2 | +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; |
3 | 3 | import { isScheduler } from '../util/isScheduler';
|
4 | 4 | import { of } from './of';
|
5 | 5 | import { from } from './from';
|
6 | 6 | import { concatAll } from '../operators/concatAll';
|
7 | 7 |
|
8 | 8 | /* tslint:disable:max-line-length */
|
9 |
| -export function concat<T>(v1: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T>; |
10 |
| -export function concat<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, scheduler?: SchedulerLike): Observable<T | T2>; |
11 |
| -export function concat<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): Observable<T | T2 | T3>; |
12 |
| -export function concat<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): Observable<T | T2 | T3 | T4>; |
13 |
| -export function concat<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>; |
14 |
| -export function concat<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>; |
15 |
| -export function concat<T>(...observables: (ObservableInput<T> | SchedulerLike)[]): Observable<T>; |
16 |
| -export function concat<T, R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>; |
| 9 | +export function concat<O1 extends ObservableInput<any>>(v1: O1, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1>>; |
| 10 | +export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>; |
| 11 | +export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>; |
| 12 | +export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>; |
| 13 | +export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>; |
| 14 | +export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>; |
| 15 | +export function concat<O extends ObservableInput<any>>(...observables: (O | SchedulerLike)[]): Observable<ObservedValueOf<O>>; |
| 16 | +export function concat<O1 extends ObservableInput<any>, R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>; |
17 | 17 | /* tslint:enable:max-line-length */
|
18 | 18 | /**
|
19 | 19 | * Creates an output Observable which sequentially emits all values from given
|
@@ -113,9 +113,6 @@ export function concat<T, R>(...observables: (ObservableInput<any> | SchedulerLi
|
113 | 113 | * @name concat
|
114 | 114 | * @owner Observable
|
115 | 115 | */
|
116 |
| -export function concat<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike>): Observable<R> { |
117 |
| - if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) { |
118 |
| - return from(<any>observables[0]); |
119 |
| - } |
| 116 | +export function concat<O extends ObservableInput<any>, R>(...observables: Array<O | SchedulerLike>): Observable<ObservedValueOf<O> | R> { |
120 | 117 | return concatAll<R>()(of(...observables));
|
121 | 118 | }
|
0 commit comments