1
- import { Observable } from '../Observable' ;
1
+ import { Observable , ObservableInput } from '../Observable' ;
2
2
import { ArrayObservable } from '../observable/ArrayObservable' ;
3
3
import { isArray } from '../util/isArray' ;
4
4
import { Scheduler } from '../Scheduler' ;
@@ -19,8 +19,8 @@ import {subscribeToResult} from '../util/subscribeToResult';
19
19
* @returns {Observable } an observable of other projected values from the most recent values from each observable, or an array of each of
20
20
* the most recent values from each observable.
21
21
*/
22
- export function combineLatest < T , R > ( ...observables : Array < Observable < any > |
23
- Array < Observable < any > > |
22
+ export function combineLatest < T , R > ( ...observables : Array < ObservableInput < any > |
23
+ Array < ObservableInput < any > > |
24
24
( ( ...values : Array < any > ) => R ) > ) : Observable < R > {
25
25
let project : ( ...values : Array < any > ) => R = null ;
26
26
if ( typeof observables [ observables . length - 1 ] === 'function' ) {
@@ -38,6 +38,27 @@ export function combineLatest<T, R>(...observables: Array<Observable<any> |
38
38
return new ArrayObservable ( observables ) . lift < T , R > ( new CombineLatestOperator < T , R > ( project ) ) ;
39
39
}
40
40
41
+ /* tslint:disable:max-line-length */
42
+ export interface CombineLatestSignature < T > {
43
+ < T2 > ( v2 : ObservableInput < T2 > ) : Observable < [ T , T2 ] > ;
44
+ < T2 , T3 > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > ) : Observable < [ T , T2 , T3 ] > ;
45
+ < T2 , T3 , T4 > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > ) : Observable < [ T , T2 , T3 , T4 ] > ;
46
+ < T2 , T3 , T4 , T5 > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > ) : Observable < [ T , T2 , T3 , T4 , T5 ] > ;
47
+ < T2 , T3 , T4 , T5 , T6 > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , v6 : ObservableInput < T6 > ) : Observable < [ T , T2 , T3 , T4 , T5 , T6 ] > ;
48
+
49
+ < R > ( project : ( v1 : T ) => R ) : Observable < R > ;
50
+ < T2 , R > ( v2 : ObservableInput < T2 > , project : ( v1 : T , v2 : T2 ) => R ) : Observable < R > ;
51
+ < T2 , T3 , R > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , project : ( v1 : T , v2 : T2 , v3 : T3 ) => R ) : Observable < R > ;
52
+ < T2 , T3 , T4 , R > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 ) => R ) : Observable < R > ;
53
+ < T2 , T3 , T4 , T5 , R > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 ) => R ) : Observable < R > ;
54
+ < T2 , T3 , T4 , T5 , T6 , R > ( v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , v6 : ObservableInput < T6 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 , v6 : T6 ) => R ) : Observable < R > ;
55
+
56
+ < R > ( ...observables : Array < ObservableInput < any > | ( ( ...values : Array < any > ) => R ) > ) : Observable < R > ;
57
+ < R > ( array : ObservableInput < any > [ ] ) : Observable < R > ;
58
+ < R > ( array : ObservableInput < any > [ ] , project : ( ...values : Array < any > ) => R ) : Observable < R > ;
59
+ }
60
+ /* tslint:enable:max-line-length */
61
+
41
62
/**
42
63
* Combines the values from observables passed as arguments. This is done by subscribing
43
64
* to each observable, in order, and collecting an array of each of the most recent values any time any of the observables
@@ -48,8 +69,25 @@ export function combineLatest<T, R>(...observables: Array<Observable<any> |
48
69
* @returns {Observable } an observable of other projected values from the most recent values from each observable, or an array of each of
49
70
* the most recent values from each observable.
50
71
*/
51
- export function combineLatestStatic < T , R > ( ...observables : Array < any | Observable < any > |
52
- Array < Observable < any > > |
72
+ /* tslint:disable:max-line-length */
73
+ export function combineLatestStatic < T > ( v1 : ObservableInput < T > ) : Observable < [ T ] > ;
74
+ export function combineLatestStatic < T , T2 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > ) : Observable < [ T , T2 ] > ;
75
+ export function combineLatestStatic < T , T2 , T3 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > ) : Observable < [ T , T2 , T3 ] > ;
76
+ export function combineLatestStatic < T , T2 , T3 , T4 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > ) : Observable < [ T , T2 , T3 , T4 ] > ;
77
+ export function combineLatestStatic < T , T2 , T3 , T4 , T5 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > ) : Observable < [ T , T2 , T3 , T4 , T5 ] > ;
78
+ export function combineLatestStatic < T , T2 , T3 , T4 , T5 , T6 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , v6 : ObservableInput < T6 > ) : Observable < [ T , T2 , T3 , T4 , T5 , T6 ] > ;
79
+ export function combineLatestStatic < T , R > ( v1 : ObservableInput < T > , project : ( v1 : T ) => R ) : Observable < R > ;
80
+ export function combineLatestStatic < T , T2 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , project : ( v1 : T , v2 : T2 ) => R ) : Observable < R > ;
81
+ export function combineLatestStatic < T , T2 , T3 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , project : ( v1 : T , v2 : T2 , v3 : T3 ) => R ) : Observable < R > ;
82
+ export function combineLatestStatic < T , T2 , T3 , T4 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 ) => R ) : Observable < R > ;
83
+ export function combineLatestStatic < T , T2 , T3 , T4 , T5 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 ) => R ) : Observable < R > ;
84
+ export function combineLatestStatic < T , T2 , T3 , T4 , T5 , T6 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , v6 : ObservableInput < T6 > , project : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 , v6 : T6 ) => R ) : Observable < R > ;
85
+ export function combineLatestStatic < R > ( ...observables : Array < ObservableInput < any > | ( ( ...values : Array < any > ) => R ) > ) : Observable < R > ;
86
+ export function combineLatestStatic < R > ( array : ObservableInput < any > [ ] ) : Observable < R > ;
87
+ export function combineLatestStatic < R > ( array : ObservableInput < any > [ ] , project : ( ...values : Array < any > ) => R ) : Observable < R > ;
88
+ /* tslint:enable:max-line-length */
89
+ export function combineLatestStatic < T , R > ( ...observables : Array < any | ObservableInput < any > |
90
+ Array < ObservableInput < any > > |
53
91
( ( ( ...values : Array < any > ) => R ) ) |
54
92
Scheduler > ) : Observable < R > {
55
93
let project : ( ...values : Array < any > ) => R = null ;
@@ -150,4 +188,4 @@ export class CombineLatestSubscriber<T, R> extends OuterSubscriber<T, R> {
150
188
}
151
189
this . destination . next ( result ) ;
152
190
}
153
- }
191
+ }
0 commit comments