ix
Version:
The Interactive Extensions for JavaScript
11 lines (10 loc) • 1.06 kB
TypeScript
import { AsyncIterableX } from '../../asynciterable/asynciterablex';
import { GroupedAsyncIterable } from '../../asynciterable/groupby';
export declare function groupByProto<TSource, TKey>(this: AsyncIterableX<TSource>, keySelector: (value: TSource) => TKey | Promise<TKey>): AsyncIterableX<GroupedAsyncIterable<TKey, TSource>>;
export declare function groupByProto<TSource, TKey, TValue>(this: AsyncIterableX<TSource>, keySelector: (value: TSource) => TKey | Promise<TKey>, elementSelector?: (value: TSource) => TValue | Promise<TValue>): AsyncIterableX<GroupedAsyncIterable<TKey, TValue>>;
export declare function groupByProto<TSource, TKey, TValue, TResult>(this: AsyncIterableX<TSource>, keySelector: (value: TSource) => TKey | Promise<TKey>, elementSelector?: (value: TSource) => TValue | Promise<TValue>, resultSelector?: (key: TKey, values: Iterable<TValue>) => TResult | Promise<TResult>): AsyncIterableX<TResult>;
declare module '../../asynciterable/asynciterablex' {
interface AsyncIterableX<T> {
groupBy: typeof groupByProto;
}
}