66 * found in the LICENSE file at https://angular.io/license
77 */
88
9- import { Observable , ObservableInput } from 'rxjs/Observable' ;
9+ // Subscribable needs to be imported because combineLatest has or is using it, but it does not need
10+ // to be used in any of the explicit typings in this file.
11+ // tslint:disable-next-line:no-unused-variable
12+ import { Observable , ObservableInput , Subscribable } from 'rxjs/Observable' ;
1013import { PartialObserver } from 'rxjs/Observer' ;
1114import { Subscription } from 'rxjs/Subscription' ;
1215import { IScheduler } from 'rxjs/Scheduler' ;
@@ -22,6 +25,7 @@ import {startWith as startWithOperator} from 'rxjs/operator/startWith';
2225import { debounceTime as debounceTimeOperator } from 'rxjs/operator/debounceTime' ;
2326import { auditTime as auditTimeOperator } from 'rxjs/operator/auditTime' ;
2427import { takeUntil as takeUntilOperator } from 'rxjs/operator/takeUntil' ;
28+ import { combineLatest as combineLatestOperator } from 'rxjs/operator/combineLatest' ;
2529
2630/**
2731 * Represents a strongly-typed chain of RxJS operators.
@@ -71,6 +75,9 @@ export interface StrictRxChain<T> {
7175
7276 call ( operator : takeUntilOperatorType < T > , notifier : Observable < any > ) : StrictRxChain < T > ;
7377
78+ call < T2 > ( operator : combineLatestOperatorType < T , T2 > ,
79+ v2 : ObservableInput < T2 > ) : StrictRxChain < [ T , T2 ] > ;
80+
7481 subscribe ( fn : ( t : T ) => void ) : Subscription ;
7582
7683 result ( ) : Observable < T > ;
@@ -89,6 +96,7 @@ export class StartWithBrand { private _; }
8996export class DebounceTimeBrand { private _ ; }
9097export class AuditTimeBrand { private _ ; }
9198export class TakeUntilBrand { private _ ; }
99+ export class CombineLatestBrand { private _ ; }
92100/* tslint:enable:no-unused-variable */
93101
94102
@@ -104,8 +112,9 @@ export type startWithOperatorType<T> = typeof startWithOperator & StartWithBrand
104112export type debounceTimeOperatorType < T > = typeof debounceTimeOperator & DebounceTimeBrand ;
105113export type auditTimeOperatorType < T > = typeof auditTimeOperator & AuditTimeBrand ;
106114export type takeUntilOperatorType < T > = typeof takeUntilOperator & TakeUntilBrand ;
115+ export type combineLatestOperatorType < T , R > = typeof combineLatestOperator & CombineLatestBrand ;
107116
108- // We add `Function` to the type intersection to make this nomically different from
117+ // We add `Function` to the type intersection to make this nominally different from
109118// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to
110119// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails
111120// because `T` isn't known.
@@ -123,3 +132,5 @@ export const debounceTime =
123132 debounceTimeOperator as typeof debounceTimeOperator & DebounceTimeBrand & Function ;
124133export const auditTime = auditTimeOperator as typeof auditTimeOperator & AuditTimeBrand & Function ;
125134export const takeUntil = takeUntilOperator as typeof takeUntilOperator & TakeUntilBrand & Function ;
135+ export const combineLatest =
136+ combineLatestOperator as typeof combineLatestOperator & CombineLatestBrand & Function ;
0 commit comments