1
- import { Observable , ObservableOrPromiseOrIterator } from '../Observable' ;
1
+ import { Observable , ObservableOrPromise , ArrayOrIterator } from '../Observable' ;
2
2
import { ArrayObservable } from '../observables/ArrayObservable' ;
3
3
import { CombineLatestOperator } from './combineLatest-support' ;
4
4
import { Scheduler } from '../Scheduler' ;
@@ -15,42 +15,151 @@ import {isScheduler} from '../util/isScheduler';
15
15
* the most recent values from each observable.
16
16
*/
17
17
export function combineLatest < T > (
18
- first : ObservableOrPromiseOrIterator < T > ,
18
+ first : ObservableOrPromise < T > ,
19
19
scheduler ?: Scheduler ) : Observable < [ T ] > ;
20
+ export function combineLatest < T > (
21
+ first : ArrayOrIterator < T > ,
22
+ scheduler ?: Scheduler ) : Observable < [ T ] > ;
23
+ export function combineLatest < T , TResult > (
24
+ first : ObservableOrPromise < T > ,
25
+ project : ( v1 : T ) => TResult ,
26
+ scheduler ?: Scheduler ) : Observable < TResult > ;
20
27
export function combineLatest < T , TResult > (
21
- first : ObservableOrPromiseOrIterator < T > ,
28
+ first : ArrayOrIterator < T > ,
22
29
project : ( v1 : T ) => TResult ,
23
30
scheduler ?: Scheduler ) : Observable < TResult > ;
24
31
export function combineLatest < T , T2 > (
25
- first : ObservableOrPromiseOrIterator < T > ,
26
- second : ObservableOrPromiseOrIterator < T2 > ,
32
+ first : ObservableOrPromise < T > ,
33
+ second : ObservableOrPromise < T2 > ,
34
+ scheduler ?: Scheduler ) : Observable < [ T , T2 ] > ;
35
+ export function combineLatest < T , T2 > (
36
+ first : ArrayOrIterator < T > ,
37
+ second : ObservableOrPromise < T2 > | ArrayOrIterator < T2 > ,
38
+ scheduler ?: Scheduler ) : Observable < [ T , T2 ] > ;
39
+ export function combineLatest < T , T2 > (
40
+ first : ObservableOrPromise < T > ,
41
+ second : ArrayOrIterator < T2 > ,
42
+ scheduler ?: Scheduler ) : Observable < [ T , T2 ] > ;
43
+ export function combineLatest < T , T2 > (
44
+ first : ArrayOrIterator < T > ,
45
+ second : ArrayOrIterator < T2 > ,
27
46
scheduler ?: Scheduler ) : Observable < [ T , T2 ] > ;
28
47
export function combineLatest < T , T2 , TResult > (
29
- first : ObservableOrPromiseOrIterator < T > ,
30
- second : ObservableOrPromiseOrIterator < T2 > ,
48
+ first : ObservableOrPromise < T > ,
49
+ second : ObservableOrPromise < T2 > ,
31
50
project : ( v1 : T , v2 : T2 ) => TResult ,
32
51
scheduler ?: Scheduler ) : Observable < TResult > ;
52
+ export function combineLatest < T , T2 , TResult > (
53
+ first : ObservableOrPromise < T > ,
54
+ second : ArrayOrIterator < T2 > ,
55
+ project : ( v1 : T , v2 : T2 ) => TResult ,
56
+ scheduler ?: Scheduler ) : Observable < TResult > ;
57
+ export function combineLatest < T , T2 , TResult > (
58
+ first : ArrayOrIterator < T > ,
59
+ second : ObservableOrPromise < T2 > ,
60
+ project : ( v1 : T , v2 : T2 ) => TResult ,
61
+ scheduler ?: Scheduler ) : Observable < TResult > ;
62
+ export function combineLatest < T , T2 , TResult > (
63
+ first : ArrayOrIterator < T > ,
64
+ second : ArrayOrIterator < T2 > ,
65
+ project : ( v1 : T , v2 : T2 ) => TResult ,
66
+ scheduler ?: Scheduler ) : Observable < TResult > ;
67
+ export function combineLatest < T , T2 , T3 > (
68
+ first : ObservableOrPromise < T > ,
69
+ second : ObservableOrPromise < T2 > ,
70
+ third : ObservableOrPromise < T3 > ,
71
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
33
72
export function combineLatest < T , T2 , T3 > (
34
- first : ObservableOrPromiseOrIterator < T > ,
35
- second : ObservableOrPromiseOrIterator < T2 > ,
36
- third : ObservableOrPromiseOrIterator < T3 > ,
73
+ first : ArrayOrIterator < T > ,
74
+ second : ObservableOrPromise < T2 > ,
75
+ third : ObservableOrPromise < T3 > ,
37
76
scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
77
+ export function combineLatest < T , T2 , T3 > (
78
+ first : ArrayOrIterator < T > ,
79
+ second : ArrayOrIterator < T2 > ,
80
+ third : ObservableOrPromise < T3 > ,
81
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
82
+ export function combineLatest < T , T2 , T3 > (
83
+ first : ArrayOrIterator < T > ,
84
+ second : ArrayOrIterator < T2 > ,
85
+ third : ArrayOrIterator < T3 > ,
86
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
87
+ export function combineLatest < T , T2 , T3 > (
88
+ first : ObservableOrPromise < T > ,
89
+ second : ArrayOrIterator < T2 > ,
90
+ third : ArrayOrIterator < T3 > ,
91
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
92
+ export function combineLatest < T , T2 , T3 > (
93
+ first : ObservableOrPromise < T > ,
94
+ second : ObservableOrPromise < T2 > ,
95
+ third : ArrayOrIterator < T3 > ,
96
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
97
+ export function combineLatest < T , T2 , T3 > (
98
+ first : ArrayOrIterator < T > ,
99
+ second : ObservableOrPromise < T2 > ,
100
+ third : ArrayOrIterator < T3 > ,
101
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
102
+ export function combineLatest < T , T2 , T3 > (
103
+ first : ObservableOrPromise < T > ,
104
+ second : ArrayOrIterator < T2 > ,
105
+ third : ObservableOrPromise < T3 > ,
106
+ scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 ] > ;
107
+ export function combineLatest < T , T2 , T3 , TResult > (
108
+ first : ObservableOrPromise < T > ,
109
+ second : ObservableOrPromise < T2 > ,
110
+ third : ObservableOrPromise < T3 > ,
111
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
112
+ scheduler ?: Scheduler ) : Observable < TResult > ;
113
+ export function combineLatest < T , T2 , T3 , TResult > (
114
+ first : ArrayOrIterator < T > ,
115
+ second : ObservableOrPromise < T2 > ,
116
+ third : ObservableOrPromise < T3 > ,
117
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
118
+ scheduler ?: Scheduler ) : Observable < TResult > ;
119
+ export function combineLatest < T , T2 , T3 , TResult > (
120
+ first : ArrayOrIterator < T > ,
121
+ second : ArrayOrIterator < T2 > ,
122
+ third : ObservableOrPromise < T3 > ,
123
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
124
+ scheduler ?: Scheduler ) : Observable < TResult > ;
38
125
export function combineLatest < T , T2 , T3 , TResult > (
39
- first : ObservableOrPromiseOrIterator < T > ,
40
- second : ObservableOrPromiseOrIterator < T2 > ,
41
- third : ObservableOrPromiseOrIterator < T3 > ,
126
+ first : ArrayOrIterator < T > ,
127
+ second : ArrayOrIterator < T2 > ,
128
+ third : ArrayOrIterator < T3 > ,
42
129
project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
43
130
scheduler ?: Scheduler ) : Observable < TResult > ;
44
- export function combineLatest < T , T2 , T3 , T4 > (
45
- first : ObservableOrPromiseOrIterator < T > ,
46
- second : ObservableOrPromiseOrIterator < T2 > ,
47
- third : ObservableOrPromiseOrIterator < T3 > ,
48
- fourth : ObservableOrPromiseOrIterator < T4 > ,
49
- scheduler ?: Scheduler ) : Observable < [ T , T2 , T3 , T4 ] > ;
131
+ export function combineLatest < T , T2 , T3 , TResult > (
132
+ first : ObservableOrPromise < T > ,
133
+ second : ArrayOrIterator < T2 > ,
134
+ third : ArrayOrIterator < T3 > ,
135
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
136
+ scheduler ?: Scheduler ) : Observable < TResult > ;
137
+ export function combineLatest < T , T2 , T3 , TResult > (
138
+ first : ObservableOrPromise < T > ,
139
+ second : ObservableOrPromise < T2 > ,
140
+ third : ArrayOrIterator < T3 > ,
141
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
142
+ scheduler ?: Scheduler ) : Observable < TResult > ;
143
+ export function combineLatest < T , T2 , T3 , TResult > (
144
+ first : ArrayOrIterator < T > ,
145
+ second : ObservableOrPromise < T2 > ,
146
+ third : ArrayOrIterator < T3 > ,
147
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
148
+ scheduler ?: Scheduler ) : Observable < TResult > ;
149
+ export function combineLatest < T , T2 , T3 , TResult > (
150
+ first : ObservableOrPromise < T > ,
151
+ second : ArrayOrIterator < T2 > ,
152
+ third : ObservableOrPromise < T3 > ,
153
+ project : ( v1 : T , v2 : T2 , v3 : T3 ) => TResult ,
154
+ scheduler ?: Scheduler ) : Observable < TResult > ;
155
+ export function combineLatest < T > (
156
+ ...observables : Array < ObservableOrPromise < T > | Scheduler > ) : Observable < T [ ] > ;
50
157
export function combineLatest < T > (
51
- ...observables : Array < ObservableOrPromiseOrIterator < T > | ( ( ...values : Array < T > ) => T ) | Scheduler > ) : Observable < T > ;
158
+ ...observables : Array < ArrayOrIterator < T > | Scheduler > ) : Observable < T [ ] > ;
159
+ export function combineLatest < T , R > (
160
+ ...observables : Array < ObservableOrPromise < T > | ( ( ...values : Array < T > ) => R ) | Scheduler > ) : Observable < R > ;
52
161
export function combineLatest < T , R > (
53
- ...observables : Array < ObservableOrPromiseOrIterator < T > | ( ( ...values : Array < T > ) => R ) | Scheduler > ) : Observable < R > ;
162
+ ...observables : Array < ArrayOrIterator < T > | ( ( ...values : Array < T > ) => R ) | Scheduler > ) : Observable < R > ;
54
163
export function combineLatest (
55
164
...observables : Array < any > ) : Observable < any > {
56
165
let project , scheduler ;
0 commit comments