uc-base-libraries
Version:
Typescript libraries for UC projects
50 lines (49 loc) • 1.98 kB
TypeScript
declare global {
interface Array<T> {
asQueryable(): Queryable<T>;
remove(item: T): void;
}
interface IEnumerable<T> extends Array<T> {
}
interface IList<T> extends Array<T> {
}
interface List<T> extends Array<T> {
}
interface Dictionary<T1, T2> extends Object {
}
}
export declare class Queryable<T> {
private array?;
constructor(array?: Array<any>);
private equals;
add: (item: T) => void;
remove: (item: T) => void;
push: (item: T) => void;
toArray: () => Array<T>;
get length(): number;
get count(): number;
distinct: (compareFunction?: (obj1: T, obj2: T) => boolean) => Queryable<T>;
where: (whereClause: (obj: T) => boolean) => Queryable<T>;
any: (whereClause?: (obj: T) => boolean) => boolean;
forEach: (func: (obj: T) => any) => boolean;
sum: (func?: (obj: T) => number) => number;
max: (func?: (obj: T) => number) => number;
min: (func?: (obj: T) => number) => number;
select: <T2>(selectItem: (obj: T) => T2) => Queryable<T2>;
orderBy: (orderBy: (obj: T) => any, isDescending?: boolean) => Queryable<T>;
orderByFunction: (orderBy?: (obj1: T, obj2: T) => number, isDescending?: boolean) => Queryable<T>;
reverse: () => Queryable<T>;
skip: (count: number) => Queryable<T>;
take: (count: number) => Queryable<T>;
first: () => T;
last: () => T;
findItem: (selectItem: (obj: T) => boolean) => T;
find: (selectItem: (obj: T) => boolean) => T;
contains: (item: T, compareFunction?: (obj1: T, obj2: T) => boolean) => boolean;
union: (arr: Array<T> | Queryable<T>) => Queryable<T>;
intersect: (arr: Array<T> | Queryable<T>, compareFunction?: (obj1: T, obj2: T) => boolean) => Queryable<T>;
difference: (arr: Array<T> | Queryable<T>, compareFunction?: (obj1: T, obj2: T) => boolean) => Queryable<T>;
copy: () => Queryable<T>;
asQueryable: () => Queryable<T>;
indexOf: (item: T) => number;
}