diff --git a/src/operator/first.ts b/src/operator/first.ts index 80d442820c..9fb8314ef1 100644 --- a/src/operator/first.ts +++ b/src/operator/first.ts @@ -53,10 +53,15 @@ import { EmptyError } from '../util/EmptyError'; * @owner Observable */ /* tslint:disable:max-line-length */ -export function first(this: Observable, predicate?: (value: T, index: number, source: Observable) => boolean): Observable; -export function first(this: Observable, predicate?: (value: T, index: number, source: Observable) => value is S): Observable; +export function first(this: Observable, + predicate?: ((value: T, index: number, source: Observable) => boolean) | + ((value: T, index: number, source: Observable) => value is S)): Observable; export function first(this: Observable, predicate: (value: T, index: number, source: Observable) => boolean, resultSelector: void, defaultValue?: T): Observable; -export function first(this: Observable, predicate: (value: T, index: number, source: Observable) => value is S, resultSelector: void, defaultValue?: S): Observable; +export function first(this: Observable, + predicate: ((value: T, index: number, source: Observable) => boolean) | + ((value: T, index: number, source: Observable) => value is S), + resultSelector?: ((value: S, index: number) => R) | void, + defaultValue?: S): Observable; export function first(this: Observable, predicate?: (value: T, index: number, source: Observable) => boolean, resultSelector?: (value: T, index: number) => R, defaultValue?: R): Observable; /* tslint:disable:max-line-length */ export function first(this: Observable, predicate?: (value: T, index: number, source: Observable) => boolean,