diff --git a/src/CoreOperators.ts b/src/CoreOperators.ts index a6a7bc3279..cc47bdefe5 100644 --- a/src/CoreOperators.ts +++ b/src/CoreOperators.ts @@ -24,7 +24,7 @@ export interface CoreOperators { debounceTime?: (dueTime: number, scheduler?: Scheduler) => Observable; defaultIfEmpty?: (defaultValue?: T | R) => Observable | Observable; delay?: (delay: number, scheduler?: Scheduler) => Observable; - distinctUntilChanged?: (compare?: (x: T, y: T) => boolean, thisArg?: any) => Observable; + distinctUntilChanged?: (compare?: (x: T, y: T) => boolean) => Observable; do?: (next?: (x: T) => void, error?: (e: any) => void, complete?: () => void) => Observable; expand?: (project: (x: T, ix: number) => Observable, concurrent: number, scheduler: Scheduler) => Observable; filter?: (predicate: (x: T) => boolean, ix?: number, thisArg?: any) => Observable; diff --git a/src/Observable.ts b/src/Observable.ts index d640f52a58..88a5175604 100644 --- a/src/Observable.ts +++ b/src/Observable.ts @@ -186,7 +186,7 @@ export class Observable implements CoreOperators { debounceTime: (dueTime: number, scheduler?: Scheduler) => Observable; defaultIfEmpty: (defaultValue?: T | R) => Observable | Observable; delay: (delay: number, scheduler?: Scheduler) => Observable; - distinctUntilChanged: (compare?: (x: T, y: T) => boolean, thisArg?: any) => Observable; + distinctUntilChanged: (compare?: (x: T, y: T) => boolean) => Observable; do: (next?: (x: T) => void, error?: (e: any) => void, complete?: () => void) => Observable; expand: (project: (x: T, ix: number) => Observable, concurrent: number, scheduler: Scheduler) => Observable; filter: (predicate: (x: T) => boolean, ix?: number, thisArg?: any) => Observable; diff --git a/src/operator/distinctUntilChanged.ts b/src/operator/distinctUntilChanged.ts index 7533dbcbf5..67d672030b 100644 --- a/src/operator/distinctUntilChanged.ts +++ b/src/operator/distinctUntilChanged.ts @@ -2,16 +2,13 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {tryCatch} from '../util/tryCatch'; import {errorObject} from '../util/errorObject'; -import {bindCallback} from '../util/bindCallback'; -export function distinctUntilChanged(compare?: (x: T, y: T) => boolean, thisArg?: any) { - return this.lift(new DistinctUntilChangedOperator(thisArg ? - <(x: T, y: T) => boolean> bindCallback(compare, thisArg, 2) : - compare)); +export function distinctUntilChanged(compare?: (x: T, y: T) => boolean) { + return this.lift(new DistinctUntilChangedOperator(compare)); } class DistinctUntilChangedOperator implements Operator { - constructor(private compare?: (x: T, y: T) => boolean) { + constructor(private compare: (x: T, y: T) => boolean) { } call(subscriber: Subscriber): Subscriber { @@ -23,7 +20,7 @@ class DistinctUntilChangedSubscriber extends Subscriber { private value: T; private hasValue: boolean = false; - constructor(destination: Subscriber, compare?: (x: T, y: T) => boolean) { + constructor(destination: Subscriber, compare: (x: T, y: T) => boolean) { super(destination); if (typeof compare === 'function') { this.compare = compare;