diff --git a/rx.js/rx.js.aggregates.d.ts b/rx.js/rx.js.aggregates.d.ts
index 1955bfe7f..4b2ed300b 100644
--- a/rx.js/rx.js.aggregates.d.ts
+++ b/rx.js/rx.js.aggregates.d.ts
@@ -3,51 +3,47 @@
// Type definitions for RxJS-Aggregates package
// Project: http://rx.codeplex.com/
// Definitions by: Carl de Billy
+// Revision by: Igor Oleinikov
// Definitions: https://github.com/borisyankov/DefinitelyTyped
-//
-// Dependencies:
-// -> rx.js
-// -> rx.aggregates.js
declare module Rx {
export interface Observable {
- aggregate(accumulator: (acc: TAcc, value: T) => TAcc): Observable;
+ aggregate(accumulator: (acc: T, value: T) => T): Observable;
aggregate(seed: TAcc, accumulator: (acc: TAcc, value: T) => TAcc): Observable;
- any(): Observable;
- any(selector: (item: T) => boolean): Observable;
+ any(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable;
+ some(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable; // alias for any
- isEmpty(predicate?: (value: T) => boolean): Observable;
- all(predicate?: (value: T) => boolean): Observable;
- contains(value: T, comparer?: (value1: T, value2: T) => boolean): Observable;
- count(predicate?: (item: T) => boolean): Observable;
- sum(keySelector?: (item: T) => number): Observable;
- minBy(keySelector: (item: T) => number, comparer?: (value1: T, value2: T) => number): Observable;
+ isEmpty(): Observable;
+ all(predicate?: (value: T) => boolean, thisArg?: any): Observable;
+ every(predicate?: (value: T) => boolean, thisArg?: any): Observable; // alias for all
+ contains(value: T): Observable;
+ contains(value: TOther, comparer: (value1: T, value2: TOther) => boolean): Observable;
+ count(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable;
+ sum(keySelector?: (value: T, index: number, source: Observable) => number, thisArg?: any): Observable;
+ minBy(keySelector: (item: T) => TKey, comparer: (value1: TKey, value2: TKey) => number): Observable;
+ minBy(keySelector: (item: T) => number): Observable;
min(comparer?: (value1: T, value2: T) => number): Observable;
- maxBy(keySelector: (item: T) => number, comparer?: (value1: T, value2: T) => number): Observable;
+ maxBy(keySelector: (item: T) => TKey, comparer: (value1: TKey, value2: TKey) => number): Observable;
+ maxBy(keySelector: (item: T) => number): Observable;
max(comparer?: (value1: T, value2: T) => number): Observable;
- average(keySelector?: (item: T) => number): Observable;
+ average(keySelector?: (value: T, index: number, source: Observable) => number, thisArg?: any): Observable;
+
+ sequenceEqual(second: Observable, comparer: (value1: T, value2: TOther) => number): Observable;
+ sequenceEqual(second: Observable): Observable;
+ sequenceEqual(second: TOther[], comparer: (value1: T, value2: TOther) => number): Observable;
+ sequenceEqual(second: T[]): Observable;
- sequenceEqual(second: Observable, comparer?: (value1: T, value2: T) => number): Observable;
elementAt(index: number): Observable;
- elementAtOrDefault(index: number, defaultValue: T): Observable;
+ elementAtOrDefault(index: number, defaultValue?: T): Observable;
- single(): Observable;
- single(predicate: (item: T) => boolean): Observable;
- singleOrDefault(): Observable;
- singleOrDefault(predicate: (item: T) => boolean): Observable;
- singleOrDefault(predicate: (item: T) => boolean, defaultValue: T): Observable;
+ single(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable;
+ singleOrDefault(predicate?: (value: T, index: number, source: Observable) => boolean, defaultValue?: T, thisArg?: any): Observable;
- first(): Observable;
- first(predicate: (item: T) => boolean): Observable;
- firstOrDefault(): Observable;
- firstOrDefault(predicate: (item: T) => boolean): Observable;
- firstOrDefault(predicate: (item: T) => boolean, defaultValue: T): Observable;
+ first(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable;
+ firstOrDefault(predicate?: (value: T, index: number, source: Observable) => boolean, defaultValue?: T, thisArg?: any): Observable;
- last(): Observable;
- last(predicate: (item: T) => boolean): Observable;
- lastOrDefault(): Observable;
- lastOrDefault(predicate: (item: T) => boolean): Observable;
- lastOrDefault(predicate: (item: T) => boolean, defaultValue: T): Observable;
+ last(predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any): Observable;
+ lastOrDefault(predicate?: (value: T, index: number, source: Observable) => boolean, defaultValue?: T, thisArg?: any): Observable;
}
}
\ No newline at end of file