@@ -2,7 +2,7 @@ import { Observable } from '../Observable';
22import { fromArray } from './fromArray' ;
33import { isArray } from '../util/isArray' ;
44import { Operator } from '../Operator' ;
5- import { ObservableInput , PartialObserver } from '../types' ;
5+ import { ObservableInput , PartialObserver , ObservedValueOf } from '../types' ;
66import { Subscriber } from '../Subscriber' ;
77import { Subscription } from '../Subscription' ;
88import { OuterSubscriber } from '../OuterSubscriber' ;
@@ -12,33 +12,33 @@ import { iterator as Symbol_iterator } from '../../internal/symbol/iterator';
1212
1313/* tslint:disable:max-line-length */
1414/** @deprecated resultSelector is no longer supported, pipe to map instead */
15- export function zip < T , R > ( v1 : ObservableInput < T > , resultSelector : ( v1 : T ) => R ) : Observable < R > ;
15+ export function zip < O1 extends ObservableInput < any > , R > ( v1 : O1 , resultSelector : ( v1 : ObservedValueOf < O1 > ) => R ) : Observable < R > ;
1616/** @deprecated resultSelector is no longer supported, pipe to map instead */
17- export function zip < T , T2 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , resultSelector : ( v1 : T , v2 : T2 ) => R ) : Observable < R > ;
17+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , R > ( v1 : O1 , v2 : O2 , resultSelector : ( v1 : ObservedValueOf < O1 > , v2 : ObservedValueOf < O2 > ) => R ) : Observable < R > ;
1818/** @deprecated resultSelector is no longer supported, pipe to map instead */
19- export function zip < T , T2 , T3 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , resultSelector : ( v1 : T , v2 : T2 , v3 : T3 ) => R ) : Observable < R > ;
19+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > , R > ( v1 : O1 , v2 : O2 , v3 : O3 , resultSelector : ( v1 : ObservedValueOf < O1 > , v2 : ObservedValueOf < O2 > , v3 : ObservedValueOf < O3 > ) => R ) : Observable < R > ;
2020/** @deprecated resultSelector is no longer supported, pipe to map instead */
21- export function zip < T , T2 , T3 , T4 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , resultSelector : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 ) => R ) : Observable < R > ;
21+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > , O4 extends ObservableInput < any > , R > ( v1 : O1 , v2 : O2 , v3 : O3 , v4 : O4 , resultSelector : ( v1 : ObservedValueOf < O1 > , v2 : ObservedValueOf < O2 > , v3 : ObservedValueOf < O3 > , v4 : ObservedValueOf < O4 > ) => R ) : Observable < R > ;
2222/** @deprecated resultSelector is no longer supported, pipe to map instead */
23- export function zip < T , T2 , T3 , T4 , T5 , R > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > , v5 : ObservableInput < T5 > , resultSelector : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 ) => R ) : Observable < R > ;
23+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > , O4 extends ObservableInput < any > , O5 extends ObservableInput < any > , R > ( v1 : O1 , v2 : O2 , v3 : O3 , v4 : O4 , v5 : O5 , resultSelector : ( v1 : ObservedValueOf < O1 > , v2 : ObservedValueOf < O2 > , v3 : ObservedValueOf < O3 > , v4 : ObservedValueOf < O4 > , v5 : ObservedValueOf < O5 > ) => R ) : Observable < R > ;
2424/** @deprecated resultSelector is no longer supported, pipe to map instead */
25- export function zip < 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 > , resultSelector : ( v1 : T , v2 : T2 , v3 : T3 , v4 : T4 , v5 : T5 , v6 : T6 ) => R ) : Observable < R > ;
25+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > , O4 extends ObservableInput < any > , O5 extends ObservableInput < any > , O6 extends ObservableInput < any > , R > ( v1 : O1 , v2 : O2 , v3 : O3 , v4 : O4 , v5 : O5 , v6 : O6 , resultSelector : ( v1 : ObservedValueOf < O1 > , v2 : ObservedValueOf < O2 > , v3 : ObservedValueOf < O3 > , v4 : ObservedValueOf < O4 > , v5 : ObservedValueOf < O5 > , v6 : ObservedValueOf < O6 > ) => R ) : Observable < R > ;
2626
27- export function zip < T , T2 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > ) : Observable < [ T , T2 ] > ;
28- export function zip < T , T2 , T3 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > ) : Observable < [ T , T2 , T3 ] > ;
29- export function zip < T , T2 , T3 , T4 > ( v1 : ObservableInput < T > , v2 : ObservableInput < T2 > , v3 : ObservableInput < T3 > , v4 : ObservableInput < T4 > ) : Observable < [ T , T2 , T3 , T4 ] > ;
30- export function zip < 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 ] > ;
31- export function zip < 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 ] > ;
27+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > > ( v1 : O1 , v2 : O2 ) : Observable < [ ObservedValueOf < O1 > , ObservedValueOf < O2 > ] > ;
28+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > > ( v1 : O1 , v2 : O2 , v3 : O3 ) : Observable < [ ObservedValueOf < O1 > , ObservedValueOf < O2 > , ObservedValueOf < O3 > ] > ;
29+ export function zip < O1 extends ObservableInput < any > , O2 extends ObservableInput < any > , O3 extends ObservableInput < any > , O4 extends ObservableInput < any > > ( v1 : O1 , v2 : O2 , v3 : O3 , v4 : O4 ) : Observable < [ ObservedValueOf < O1 > , ObservedValueOf < O2 > , ObservedValueOf < O3 > , ObservedValueOf < O4 > ] > ;
30+ export function zip < 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 ) : Observable < [ ObservedValueOf < O1 > , ObservedValueOf < O2 > , ObservedValueOf < O3 > , ObservedValueOf < O4 > , ObservedValueOf < O5 > ] > ;
31+ export function zip < 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 ) : Observable < [ ObservedValueOf < O1 > , ObservedValueOf < O2 > , ObservedValueOf < O3 > , ObservedValueOf < O4 > , ObservedValueOf < O5 > , ObservedValueOf < O6 > ] > ;
3232
33- export function zip < T > ( array : ObservableInput < T > [ ] ) : Observable < T [ ] > ;
33+ export function zip < O extends ObservableInput < any > > ( array : O [ ] ) : Observable < ObservedValueOf < O > [ ] > ;
3434export function zip < R > ( array : ObservableInput < any > [ ] ) : Observable < R > ;
3535/** @deprecated resultSelector is no longer supported, pipe to map instead */
36- export function zip < T , R > ( array : ObservableInput < T > [ ] , resultSelector : ( ...values : Array < T > ) => R ) : Observable < R > ;
36+ export function zip < O extends ObservableInput < any > , R > ( array : O [ ] , resultSelector : ( ...values : ObservedValueOf < O > [ ] ) => R ) : Observable < R > ;
3737/** @deprecated resultSelector is no longer supported, pipe to map instead */
38- export function zip < R > ( array : ObservableInput < any > [ ] , resultSelector : ( ...values : Array < any > ) => R ) : Observable < R > ;
38+ export function zip < R > ( array : ObservableInput < any > [ ] , resultSelector : ( ...values : any [ ] ) => R ) : Observable < R > ;
3939
40- export function zip < T > ( ...observables : Array < ObservableInput < T > > ) : Observable < T [ ] > ;
41- export function zip < T , R > ( ...observables : Array < ObservableInput < T > | ( ( ...values : Array < T > ) => R ) > ) : Observable < R > ;
40+ export function zip < O extends ObservableInput < any > > ( ...observables : O [ ] ) : Observable < ObservedValueOf < O > [ ] > ;
41+ export function zip < O extends ObservableInput < any > , R > ( ...observables : Array < O | ( ( ...values : ObservedValueOf < O > [ ] ) => R ) > ) : Observable < R > ;
4242export function zip < R > ( ...observables : Array < ObservableInput < any > | ( ( ...values : Array < any > ) => R ) > ) : Observable < R > ;
4343/* tslint:enable:max-line-length */
4444
@@ -72,7 +72,9 @@ export function zip<R>(...observables: Array<ObservableInput<any> | ((...values:
7272 * @name zip
7373 * @owner Observable
7474 */
75- export function zip < T , R > ( ...observables : Array < ObservableInput < any > | ( ( ...values : Array < any > ) => R ) > ) : Observable < R > {
75+ export function zip < O extends ObservableInput < any > , R > (
76+ ...observables : Array < O | ( ( ...values : ObservedValueOf < O > [ ] ) => R ) >
77+ ) : Observable < ObservedValueOf < O > [ ] | R > {
7678const resultSelector = < ( ( ...ys : Array < any > ) => R ) > observables [ observables . length - 1 ] ;
7779if ( typeof resultSelector === 'function' ) {
7880observables . pop ( ) ;
0 commit comments