typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
223 lines (213 loc) • 12.5 kB
TypeScript
// Type definitions for linq.js 2.2
// Project: http://linqjs.codeplex.com/
// Definitions by: Marcin Najder
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// todo: jQuery plugin, RxJS Binding
declare module linq {
interface EnumerableStatic {
Choice(...contents: any[]): Enumerable;
Choice(contents: any[]): Enumerable;
Cycle(...contents: any[]): Enumerable;
Cycle(contents: any[]): Enumerable;
Empty(): Enumerable;
From(obj: any[]): Enumerable;
From(obj: any): Enumerable;
Return(element: any): Enumerable;
Matches(input: string, pattern: RegExp): Enumerable;
Matches(input: string, pattern: string, flags?: string): Enumerable;
Range(start: number, count: number, step?: number): Enumerable;
RangeDown(start: number, count: number, step?: number): Enumerable;
RangeTo(start: number, to: number, step?: number): Enumerable;
Repeat(obj: any, count?: number): Enumerable;
RepeatWithFinalize(initializer: () => any, finalizer: (resource: any) =>void ): Enumerable;
Generate(func: () => any, count?: number): Enumerable;
Generate(func: string, count?: number): Enumerable;
ToInfinity(start?: number, step?: number): Enumerable;
ToNegativeInfinity(start?: number, step?: number): Enumerable;
Unfold(seed, func: ($) => any): Enumerable;
Unfold(seed, func: string): Enumerable;
}
interface Enumerable {
//Projection and Filtering Methods
CascadeBreadthFirst(func: ($) => any[], resultSelector: (v, i: number) => any): Enumerable;
CascadeBreadthFirst(func: string, resultSelector: string): Enumerable;
CascadeDepthFirst(func: ($) => any[], resultSelector: (v, i: number) => any): Enumerable;
CascadeDepthFirst(func: string, resultSelector: string): Enumerable;
Flatten(...items: any[]): Enumerable;
Pairwise(selector: (prev, next) => any): Enumerable;
Pairwise(selector: string): Enumerable;
Scan(func: (a, b) => any): Enumerable;
Scan(func: string): Enumerable;
Scan(seed, func: (a, b) => any, resultSelector?: ($) => any): Enumerable;
Scan(seed, func: string, resultSelector?: string): Enumerable;
Select(selector: ($, i: number) => any): Enumerable;
Select(selector: string): Enumerable;
SelectMany(collectionSelector: ($, i: number) => any[], resultSelector?: ($, item) => any): Enumerable;
SelectMany(collectionSelector: ($, i: number) => Enumerable, resultSelector?: ($, item) => any): Enumerable;
SelectMany(collectionSelector: string, resultSelector?: string): Enumerable;
Where(predicate: ($, i: number) => boolean): Enumerable;
Where(predicate: string): Enumerable;
OfType(type: Function): Enumerable;
Zip(second: any[], selector: (v1, v2, i: number) => any): Enumerable;
Zip(second: any[], selector: string): Enumerable;
Zip(second: Enumerable, selector: (v1, v2, i: number) => any): Enumerable;
Zip(second: Enumerable, selector: string): Enumerable;
//Join Methods
Join(inner: any[], outerKeySelector: (v1) => any, innerKeySelector: (v1) => any, resultSelector: (v1, v2) => any, compareSelector?: (v) => any): Enumerable;
Join(inner: any[], outerKeySelector: string, innerKeySelector: string, resultSelector: string, compareSelector?: string): Enumerable;
Join(inner: Enumerable, outerKeySelector: (v1) => any, innerKeySelector: (v1) => any, resultSelector: (v1, v2) => any, compareSelector?: (v) => any): Enumerable;
Join(inner: Enumerable, outerKeySelector: string, innerKeySelector: string, resultSelector: string, compareSelector?: string): Enumerable;
GroupJoin(inner: any[], outerKeySelector: (v1) => any, innerKeySelector: (v1) => any, resultSelector: (v1, v2: Enumerable) => any, compareSelector?: (v) => any): Enumerable;
GroupJoin(inner: any[], outerKeySelector: string, innerKeySelector: string, resultSelector: string, compareSelector?: string): Enumerable;
GroupJoin(inner: Enumerable, outerKeySelector: (v1) => any, innerKeySelector: (v1) => any, resultSelector: (v1, v2: Enumerable) => any, compareSelector?: (v) => any): Enumerable;
GroupJoin(inner: Enumerable, outerKeySelector: string, innerKeySelector: string, resultSelector: string, compareSelector?: string): Enumerable;
//Set Methods
All(predicate: ($) => boolean): boolean;
All(predicate: string): boolean;
Any(predicate?: ($) => boolean): boolean;
Any(predicate?: string): boolean;
Concat(second: any[]): Enumerable;
Concat(second: Enumerable): Enumerable;
Insert(index: number, second: any[]): Enumerable;
Insert(index: number, second: Enumerable): Enumerable;
Alternate(value): Enumerable;
Contains(value, compareSelector?: ($) => any): boolean;
Contains(value, compareSelector?: string): boolean;
DefaultIfEmpty(defaultValue): Enumerable;
Distinct(compareSelector?: ($) => any): Enumerable;
Distinct(compareSelector?: string): Enumerable;
Except(second: any[], compareSelector?: ($) => any): Enumerable;
Except(second: any[], compareSelector?: string): Enumerable;
Except(second: Enumerable, compareSelector?: ($) => any): Enumerable;
Except(second: Enumerable, compareSelector?: string): Enumerable;
Intersect(second: any[], compareSelector?: ($) => any): Enumerable;
Intersect(second: any[], compareSelector?: string): Enumerable;
Intersect(second: Enumerable, compareSelector?: ($) => any): Enumerable;
Intersect(second: Enumerable, compareSelector?: string): Enumerable;
SequenceEqual(second: any[], compareSelector?: ($) => any): boolean;
SequenceEqual(second: any[], compareSelector?: string): boolean;
SequenceEqual(second: Enumerable, compareSelector?: ($) => any): boolean;
SequenceEqual(second: Enumerable, compareSelector?: string): boolean;
Union(second: any[], compareSelector?: ($) => any): Enumerable;
Union(second: any[], compareSelector?: string): Enumerable;
Union(second: Enumerable, compareSelector?: ($) => any): Enumerable;
Union(second: Enumerable, compareSelector?: string): Enumerable;
//Ordering Methods
OrderBy(keySelector?: ($) => any): OrderedEnumerable;
OrderBy(keySelector?: string): OrderedEnumerable;
OrderByDescending(keySelector?: ($) => any): OrderedEnumerable;
OrderByDescending(keySelector?: string): OrderedEnumerable;
Reverse(): Enumerable;
Shuffle(): Enumerable;
//Grouping Methods
GroupBy(keySelector: ($) => any, elementSelector?: ($) => any, resultSelector?: (key, e) => any, compareSelector?: ($) =>any): Enumerable;
GroupBy(keySelector: string, elementSelector?: string, resultSelector?: string, compareSelector?: string): Enumerable;
PartitionBy(keySelector: ($) => any, elementSelector?: ($) => any, resultSelector?: (key, e) => any, compareSelector?: ($) =>any): Enumerable;
PartitionBy(keySelector: string, elementSelector?: string, resultSelector?: string, compareSelector?: string): Enumerable;
BufferWithCount(count: number): Enumerable;
// Aggregate Methods
Aggregate(func: (a, b) => any);
Aggregate(seed, func: (a, b) => any, resultSelector?: ($) => any);
Aggregate(func: string);
Aggregate(seed, func: string, resultSelector?: string);
Average(selector?: ($) => number): number;
Average(selector?: string): number;
Count(predicate?: ($) => boolean): number;
Count(predicate?: string): number;
Max(selector?: ($) => number): number;
Max(selector?: string): number;
Min(selector?: ($) => number): number;
Min(selector?: string): number;
MaxBy(selector: ($) => number): any;
MaxBy(selector: string): any;
MinBy(selector: ($) => number): any;
MinBy(selector: string): any;
Sum(selector?: ($) => number): number;
Sum(selector?: string): number;
//Paging Methods
ElementAt(index: number): any;
ElementAtOrDefault(index: number, defaultValue): any;
First(predicate?: ($) => boolean): any;
First(predicate?: string): any;
FirstOrDefault(defaultValue, predicate?: ($) => boolean): any;
FirstOrDefault(defaultValue, predicate?: string): any;
Last(predicate?: ($) => boolean): any;
Last(predicate?: string): any;
LastOrDefault(defaultValue, predicate?: ($) => boolean): any;
LastOrDefault(defaultValue, predicate?: string): any;
Single(predicate?: ($) => boolean): any;
Single(predicate?: string): any;
SingleOrDefault(defaultValue, predicate?: ($) => boolean): any;
SingleOrDefault(defaultValue, predicate?: string): any;
Skip(count: number): Enumerable;
SkipWhile(predicate: ($, i: number) => boolean): Enumerable;
SkipWhile(predicate: string): Enumerable;
Take(count: number): Enumerable;
TakeWhile(predicate: ($, i: number) => boolean): Enumerable;
TakeWhile(predicate: string): Enumerable;
TakeExceptLast(count?: number): Enumerable;
TakeFromLast(count: number): Enumerable;
IndexOf(item): number;
LastIndexOf(item): number;
// Convert Methods
ToArray(): any[];
ToLookup(keySelector: ($) => any, elementSelector?: ($) => any, compareSelector?: (key) => any): Lookup;
ToLookup(keySelector: string, elementSelector?: string, compareSelector?: string): Lookup;
ToObject(keySelector: ($) => string, elementSelector: ($) => any): any;
ToObject(keySelector: string, elementSelector: string): any;
ToDictionary(keySelector: ($) => any, elementSelector: ($) => any, compareSelector?: (key) => any): Dictionary;
ToDictionary(keySelector: string, elementSelector: string, compareSelector?: string): Dictionary;
ToJSON(replacer?: (key, value) => any, space?: number): string;
ToJSON(replacer?: string, space?: number): string;
ToString(separator?: string, selector?: ($) =>any): string;
ToString(separator?: string, selector?: string): string;
//Action Methods
Do(action: ($, i: number) => void ): Enumerable;
Do(action: string): Enumerable;
ForEach(action: ($, i: number) => void ): void;
ForEach(func: ($, i: number) => boolean): void;
ForEach(action_func: string): void;
Write(separator?: string, selector?: ($) =>any): void;
Write(separator?: string, selector?: string): void;
WriteLine(selector?: ($) =>any): void;
Force(): void;
//Functional Methods
Let(func: (e: Enumerable) => Enumerable): Enumerable;
Share(): Enumerable;
MemoizeAll(): Enumerable;
//Error Handling Methods
Catch(handler: (error: Error) => void ): Enumerable;
Catch(handler: string): Enumerable;
Finally(finallyAction: () => void ): Enumerable;
Finally(finallyAction: string): Enumerable;
//For Debug Methods
Trace(message?: string, selector?: ($) =>any): Enumerable;
Trace(message?: string, selector?: string): Enumerable;
}
interface OrderedEnumerable extends Enumerable {
ThenBy(keySelector: ($) => any): OrderedEnumerable;
ThenBy(keySelector: string): OrderedEnumerable;
ThenByDescending(keySelector: ($) => any): OrderedEnumerable;
ThenByDescending(keySelector: string): OrderedEnumerable;
}
interface Grouping extends Enumerable {
Key();
}
interface Lookup {
Count(): number;
Get(key): Enumerable;
Contains(key): boolean;
ToEnumerable(): Enumerable;
}
interface Dictionary {
Add(key, value): void;
Get(key): any;
Set(key, value): boolean;
Contains(key): boolean;
Clear(): void;
Remove(key): void;
Count(): number;
ToEnumerable(): Enumerable;
}
}
declare var Enumerable: linq.EnumerableStatic;