uicore-ts
Version:
UICore is a library to build native-like user interfaces using pure Typescript. No HTML is needed at all. Components are described as TS classes and all user interactions are handled explicitly. This library is strongly inspired by the UIKit framework tha
55 lines (54 loc) • 2.1 kB
TypeScript
declare global {
interface Array<T> {
removeElementAtIndex(index: number): void;
removeElement(element: T): void;
insertElementAtIndex(index: number, element: T): void;
replaceElementAtIndex(index: number, element: T): void;
contains(element: T): boolean;
findAsyncSequential(functionToCall: (value: any) => Promise<boolean>): Promise<any>;
groupedBy<T>(keyFunction: (item: T) => any): {
[key: string]: Array<T>;
} & Object;
uniqueMap<T, R>(keyFunction: (item: T) => R): R[];
copy(): Array<T>;
arrayByRepeating(numberOfRepetitions: number): Array<T>;
arrayByTrimmingToLengthIfLonger(maxLength: number): Array<T>;
anyMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean;
noneMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean;
allMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean;
firstElement: T;
lastElement: T;
readonly summedValue: T;
everyElement: UIEveryElementItem<T>;
max(): number;
min(): number;
average(): number;
isEqualToArray(array: Array<T>, keyPath?: string): boolean;
}
interface String {
contains(string: string): boolean;
readonly numericalValue: number;
readonly integerValue: number;
isAString: boolean;
}
interface Number {
isANumber: boolean;
readonly integerValue: number;
constrainedValue(min: number, max: number): number;
}
interface Date {
readonly dateString: string;
}
interface Object {
forEach(callbackFunction: (value: any, key: string, stopLooping: () => void) => void): void;
objectByCopyingValuesRecursivelyFromObject<T extends object>(object: T): T & this;
readonly allValues: Array<any>;
readonly allKeys: (keyof this)[];
}
}
export {};
export type UIEveryElementItem<T> = {
[P in keyof T]: UIEveryElementItem<T[P]>;
} & {
UI_elementValues?: T[];
} & T;