Files

1970 lines
58 KiB
TypeScript
Raw Permalink Normal View History

2024-12-03 17:40:13 +08:00
/**
* JavaScript
*/
declare namespace XEUtils {
export interface SetupDefaults {
/**
*
* toArrayTree()toTreeArray()
*/
treeOptions?: {
strict?: boolean;
parentKey?: string;
key?: string;
children?: string;
data?: string;
[key: string]: any;
};
/**
*
* toDateString()
*/
parseDateFormat?: string;
/**
*
* toDateString()
*/
parseDateRules?: ToDateStringFormats;
/**
*
* getWhatWeek()getYearWeek()toDateString()
*/
firstDayOfWeek?: FirstDayOfWeek;
/**
*
* commafy()
*/
commafyOptions?: CommafyOptions;
/**
* parseDateRules
* @deprecated
*/
formatStringMatchs?: any;
/**
* parseDateFormat
* @deprecated
*/
formatString?: string;
[key: string]: any;
}
/**
*
*/
export const VERSION: string
/**
*
* @param options
*/
export function setup(options: SetupDefaults): SetupDefaults;
/**
* XEUtils
* @param methods
*/
export function mixin(...methods: {[key: string]: any}[]): void;
/**
*
* @param target
* @param source1
*/
export function assign<T, U>(target: T, source1: U): T & U;
/**
*
* @param target
* @param source1 1
* @param source2 2
*/
export function assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;
/**
*
* @param target
* @param source1 1
* @param source2 2
* @param source3 3
*/
export function assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
/**
*
* @param target
* @param sources
*/
export function assign(target: any, ...sources: any[]): any;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function objectMap<T, U>(obj: T, iterate: (item: any, key: string, obj: T) => U, context ?: any): U;
export function objectMap<U>(obj: any, iterate: (item: any, key: string, obj: any) => U, context ?: any): U;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function objectEach<T>(obj: T, iterate: (item: any, key: string, obj: T) => void, context ?: any): void;
export function objectEach(obj: any, iterate: (item: any, key: string, obj: any) => void, context ?: any): void;
/**
* ,
* @param obj
* @param iterate
* @param context
*/
export function lastObjectEach<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => void, context?: C): void;
export function lastObjectEach<C = any>(obj: any, iterate: (this: C, item: any, key: string, obj: any) => void, context?: C): void;
/**
*
* @param target
* @param source1 1
*/
export function merge<T, U>(target: T, source1: U): T & U;
/**
*
* @param target
* @param source1 1
* @param source2 2
*/
export function merge<T, U, V>(target: T, source1: U, source2: V): T & U & V;
/**
*
* @param target
* @param source1 1
* @param source2 2
* @param source3 3
*/
export function merge<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
/**
*
* @param target
* @param sources
*/
export function merge(target: any, ...sources: any[]): any;
/**
*
* @param list
* @param iterate /
* @param context
*/
export function uniq<T, C = any>(list: T[], iterate?: string | number | ((this: C, item: T, index: number, obj: T[]) => string | number), context?: C): T[];
export function uniq<C = any>(list: any, iterate?: string | number | ((this: C, item: any, index: number, obj: any) => string | number), context?: C): any[];
/**
*
* @param array
*/
export function union(...array: any[]): any[];
/**
* orderBy
* @deprecated
*/
export const sortBy: typeof orderBy
interface OrderBySortConfs<T, C> {
field?: string | ((this: C, item: T, index: number, list: T[]) => any) | null;
order?: 'asc' | 'desc' | null;
}
export type OrderByFieldConfs<T, C> = null | string | any[][] | OrderBySortConfs<T, C> | (string | OrderBySortConfs<T, C>)[] | ((this: C, item: T, index: number, list: T[]) => any);
/**
*
* @param array
* @param fieldConfs
* @param context
*/
export function orderBy<T, C = any>(array: T[], fieldConfs: OrderByFieldConfs<T, C>, context?: C): T[];
/**
*
* @param list
*/
export function shuffle<T>(list: T[]): T[];
/**
*
* @param array
* @example
*/
export function sample<T>(array: T[]): T;
/**
*
* @param array
* @param number
* @example
*/
export function sample<T>(array: T[], number: number): T[];
/**
* , true, true, false
* @param list
* @param iterate
* @param context
*/
export function some<T>(list: T[], iterate: (item: T, index: number, list: T[]) => boolean, context?: any): boolean;
/**
* , true, true, false
* @param list
* @param iterate
* @param context
*/
export function every<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[]) => boolean, context?: C): boolean;
/**
* , true, true, false
* @param list
* @param iterate
* @param context
*/
export function every<T, C = any>(list: T, iterate: (this: C, item: any, key: string, list: T) => boolean, context?: C): boolean;
/**
* slice ( array, start, end ) Arguments array start end end
* @param array
* @param start /
* @param end
*/
export function slice<T>(array: T[], start: number, end?: number): T[];
/**
*
* @param array
* @param iterate
* @param context
*/
export function filter<T, C = any>(array: T[], iterate: (this: C, item: T, index: number, list: T[]) => boolean, context?: C): T[];
/**
*
* @param obj
* @param iterate
* @param context
*/
export function filter<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, list: T) => boolean, context?: C): any;
/**
*
* @param array
* @param iterate
* @param context
*/
export function find<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[]) => boolean, context?: C): T;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function find<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => boolean, context?: C): any;
/**
*
* @param array
* @param iterate
* @param context
*/
export function findLast<T, C = any>(array: T[], iterate: (this: C, item: T, index: number, list: T[]) => boolean, context?: C): T;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function findLast<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => boolean, context?: C): any;
/**
*
* @param list
* @param iterate
* @param context
*/
export function findKey<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[])=> boolean, context?: C): number;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function findKey<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T)=> boolean, context?: C): any;
/**
* , true false
* @param obj
* @param val
*/
export function includes(obj: any, val: any): boolean;
/**
*
* @param list
* @param val
*/
export function arrayIndexOf<T>(list: ArrayLike<T>, val: any): number;
export function arrayIndexOf(list: any[], val: any): number;
/**
* ,
* @param list
* @param val
*/
export function arrayLastIndexOf<T>(list: ArrayLike<T>, val: any): number;
export function arrayLastIndexOf(list: any[], val: any): number;
/**
*
* @param list
* @param iterate
* @param context
*/
export function map<T, U, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[]) => U, context?: C): U[];
/**
*
* @param array
* @param iterate
* @param initialValue
* @example
*/
export function reduce<T, U>(array: T[], iterate?: (previous: U, item: T, index: number, list: T[]) => U, initialValue?: U): U;
/**
* ,
* @param array
* @param target
*/
export function copyWithin<T>(array: T[], target: number): T[];
/**
* ,
* @param array
* @param target
* @param start 0
* @param end
*/
export function copyWithin<T>(array: T[], target: number, start: number, end?: number): T[];
/**
*
* @param array
* @param size
*/
export function chunk<T>(array: T[] | undefined, size: number): T[][];
/**
*
* @param arrays
*/
export function zip(...arrays: any[]): any[];
/**
* zip
* @param arrays
*/
export function unzip(arrays: any[]): any[];
/**
*
* @param props
* @param values
* @example
*/
export function zipObject(props: any[], values: any[]): any;
/**
*
* @param list
* @param deep
*/
export function flatten<T>(list: T[][], deep?: boolean): T[];
/**
*
* @param list
* @param deep
*/
export function flatten(list: any[], deep?: boolean): any[];
/**
*
* @param list /
*/
export function toArray<T>(list: T[]): T[];
export function toArray(list: any): any[];
/**
*
* @param array1
* @param array2
*/
export function includeArrays(array1: any[], array2: any[]): boolean;
/**
*
* @param array
* @param key
* @example
*/
export function pluck(array: any[], key: string | number): any[];
/**
* list的每个元素上执行方法,
* @param list
* @param path
* @example
*/
export function invoke(list: any[], path: string[] | string | ((this: any, ...args: any[]) => any)): any[];
/**
*
* @param list
* @param iterate
* @param context
*/
export function arrayEach<T, C = any>(list: T[] | ArrayLike<T>, iterate: (this: C, item: T, index: number, list: T[]) => void, context?: C): void;
export function arrayEach<C = any>(obj: any[], iterate: (this: C, item: any, index: number, obj: any) => void, context?: C): void;
/**
* ,
* @param list
* @param iterate
* @param context
*/
export function lastArrayEach<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[]) => void, context?: C): void;
export function lastArrayEach<T, C = any>(list: T, iterate: (this: C, item: any, index: number, list: T) => void, context?: C): void;
export function lastArrayEach<C = any>(list: any[], iterate: (this: C, item: any, index: number, list: any[]) => void, context?: C): void;
export function lastArrayEach<C = any>(list: any, iterate: (this: C, item: any, index: number, list: any) => void, context?: C): void;
export interface ToArrayTreeOptions<T> {
strict?: boolean;
key?: string;
parentKey?: string;
children?: string;
mapChildren?: string;
sortKey?: OrderByFieldConfs<T, any>;
data?: string;
/**
* sortKey: { ...,order: 'desc' }
* @deprecated
*/
reverse?: boolean;
}
/**
*
* @param {Array} list
* @param {Object} options {strict: false, parentKey: 'parentId', key: 'id', children: 'children', mapChildren: '', data: 'data'}
*/
export function toArrayTree<T>(list: T[], options?: ToArrayTreeOptions<T>): T[];
export function toArrayTree(list: any, options?: ToArrayTreeOptions<any>): any[];
export interface ToTreeArrayOptions {
children?: string;
data?: string;
clear?: boolean;
}
/**
*
* @param {Array} list
* @param {Object} options { children: 'children', data: 'data', clear: false }
*/
export function toTreeArray<T>(list: T[], options?: ToTreeArrayOptions): T[];
export function toTreeArray(list: any, options?: ToTreeArrayOptions): any[];
export interface FindTerrResult<T = any> {
index: number;
item: T;
path: Array<string>;
items: T[];
parent: T;
nodes: T[];
}
export interface FindTreeOptions {
children?: string;
}
/**
*
* @param {Object} list
* @param {Function} iterate(item, index, items, path, parent, nodes)
* @param {Object} options {children: 'children'}
* @param {Object} context
*/
export function findTree<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, items: T[], path: string[], parent: T, nodes: T[]) => boolean, options?: FindTreeOptions, context?: C): FindTerrResult<T>;
export interface EachTreeOptions {
children?: string;
}
/**
*
* @param {Object} list
* @param {Function} iterate(item, index, items, path, parent, nodes)
* @param {Object} options {children: 'children'}
* @param {Object} context
*/
export function eachTree<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, items: T[], path: string[], parent: T, nodes: T[]) => void, options?: EachTreeOptions, context?: C): void;
export function eachTree<C = any>(list: any[], iterate: (this: C, item: any, index: number, items: any[], path: string[], parent: any, nodes: any[]) => void, options?: EachTreeOptions, context?: C): void;
export function eachTree<C = any>(list: any, iterate: (this: C, item: any, index: number, items: any, path: string[], parent: any, nodes: any) => void, options?: EachTreeOptions, context?: C): void;
export interface MapTreeOptions {
children?: string;
mapChildren?: string;
}
/**
*
* @param {Object} obj /
* @param {Function} iterate(item, index, items, path, parent, nodes)
* @param {Object} options {children: 'children', mapChildren: 'children}
* @param {Object} context
*/
export function mapTree<T, U, C = any>(array: T[], iterate: (this: C, item: T, index: number, items: T[], path: string[], parent: T, nodes: T[]) => U, options?: MapTreeOptions, context?: C): U[];
export function mapTree<U, C = any>(array: any[], iterate: (this: C, item: any, index: number, items: any[], path: string[], parent: any, nodes: any[]) => U, options?: MapTreeOptions, context?: C): U[];
export function mapTree<U, C = any>(array: any, iterate: (this: C, item: any, index: number, items: any, path: string[], parent: any, nodes: any) => U, options?: MapTreeOptions, context?: C): U[];
export interface FilterTreeOptions {
children?: string;
}
/**
*
* @param {Object} list
* @param {Function} iterate(item, index, items, path, parent)
* @param {Object} options {children: 'children'}
* @param {Object} context
*/
export function filterTree<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, items: T[], path: string[], parent: T, nodes: T[]) => boolean, options?: FilterTreeOptions, context?: C): T[];
export interface SearchTreeOptions {
isEvery?: boolean
children?: string;
mapChildren?: string;
original?: boolean;
data?: string;
}
/**
*
* @param {Object} list /
* @param {Function} iterate(item, index, items, path, parent, nodes)
* @param {Object} options {children: 'children'}
* @param {Object} context
*/
export function searchTree<T>(list: T[], iterate: (item: T, index: number, items: T[], path: string[], parent: T, nodes: T[]) => boolean, options?: SearchTreeOptions, context?: any): T[];
export function searchTree(list: any[], iterate: (item: any, index: number, items: any[], path: string[], parent: any, nodes: any[]) => boolean, options?: SearchTreeOptions, context?: any): any[];
export function searchTree(list: any, iterate: (item: any, index: number, items: any, path: string, parent: any, nodes: any) => boolean, options?: SearchTreeOptions, context?: any): any[];
/**
*
* @param obj
* @param key
*/
export function hasOwnProp(obj: any, key: string | number): boolean;
/**
* undefined null
* @param obj
*/
export function eqNull(obj: any): boolean;
/**
*
* @param val
*/
export function isNaN(val: any): boolean;
/**
*
* @param val
*/
export function isFinite(val: any): val is number;
/**
* Undefined
* @param val
*/
export function isUndefined(val: any): val is undefined;
/**
*
* @param val
*/
export function isArray(val: any): val is any[];
/**
*
* @param val
*/
export function isFloat(val: any): val is number;
/**
*
* @param val
*/
export function isInteger(val: any): val is number;
/**
*
* @param val
*/
export function isFunction(val: any): val is Function;
/**
* Boolean
* @param val
*/
export function isBoolean(val: any): val is boolean;
/**
* String对象
* @param val
*/
export function isString(val: any): val is string;
/**
* Number
* @param val
*/
export function isNumber(val: any): val is number;
/**
* RegExp
* @param val
*/
export function isRegExp(val: any): val is RegExp;
/**
* Object
* @param val
*/
export function isObject(val: any): val is object;
/**
*
* @param val
*/
export function isPlainObject(val: any): val is object;
/**
* Date
* @param val
*/
export function isDate(val: any): val is Date;
/**
* Error
* @param val
*/
export function isError(val: any): val is Error;
/**
* TypeError
* @param val
*/
export function isTypeError(val: any): val is TypeError;
/**
*
* @param val
*/
export function isEmpty(val: any): boolean;
/**
* Null
* @param val
*/
export function isNull(val: any): val is null;
/**
* Symbol
* @param val
*/
export function isSymbol(val: any): val is symbol;
/**
* Arguments
* @param val
*/
export function isArguments(val: any): val is IArguments;
/**
* Element
* @param val
*/
export function isElement(val: any): val is Element;
/**
* Document
* @param val
*/
export function isDocument(val: any): val is Document;
/**
* Window
* @param val
*/
export function isWindow(val: any): val is Window;
/**
* FormData
* @param val
*/
export function isFormData(val: any): val is FormData;
/**
* Map
* @param val
*/
export function isMap(val: any): val is Map<any, any>;
/**
* WeakMap
* @param val
*/
export function isWeakMap(val: any): val is WeakMap<any, any>;
/**
* Set
* @param val
*/
export function isSet(val: any): val is Set<any>;
/**
* WeakSet
* @param val
*/
export function isWeakSet(val: any): val is WeakSet<any>;
/**
*
* @param date
*/
export function isLeapYear(date: Date | number | string): boolean;
export function isLeapYear(date: any): boolean;
/**
*
* @param obj
* @param source
*/
export function isMatch(obj: any, source: any): boolean;
/**
*
* @param obj1 1
* @param obj2 2
*/
export function isEqual(obj1: any, obj2: any): boolean;
/**
* 使
* @param obj1 1
* @param obj2 2
*/
export function isEqualWith(obj1: any, obj2: any): boolean;
/**
* 使
* @param obj1 1
* @param obj2 2
* @param func
*/
export function isEqualWith<T, U>(obj1: T, obj2: U, func: (val1: any, val2: any, key: any, obj1: T, obj2: U) => any): boolean;
/**
*
* @param obj
*/
export function getType(obj: any): string;
/**
*
* @param prefix
*/
export function uniqueId(prefix?: string | number | null): string;
/**
*
* @param obj
*/
export function getSize(obj: any): number;
/**
*
* @param obj
* @param val
*/
export function indexOf(obj: any, val: any): number;
/**
* ,
* @param obj
* @param val
*/
export function lastIndexOf(obj: any[], val: any): number;
export function lastIndexOf(obj: any, val: any): number;
/**
*
* @param list
* @param iterate
* @param context
*/
export function findIndexOf<T, C = any>(list: T[], iterate: (this: C, item: T, index: any, obj: T[]) => boolean, context?: C): number;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function findIndexOf<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => boolean, context?: C): number;
/**
* ,
* @param list
* @param iterate
* @param context
*/
export function findLastIndexOf<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T[]) => boolean, context?: C): number;
/**
* ,
* @param obj
* @param iterate
* @param context
*/
export function findLastIndexOf<C = any>(obj: any, iterate: (this: C, item: any, key: string, obj: any) => boolean, context?: C): number;
/**
* JSON
* @param str
*/
export function toStringJSON(str: string | null): any;
export function toStringJSON(str: any): any;
/**
* JSON
* @param obj
*/
export function toJSONString(obj: any): string;
/**
*
* @param obj
*/
export function keys(obj: any): string[];
/**
*
* @param obj
*/
export function values<T>(obj: { [s: string]: T } | T[]): T[];
export function values(obj: any): any[];
/**
*
* @param obj
*/
export function entries(obj: any): any[];
/**
* keys
* @param obj
* @param array
*/
export function pick(obj: any, array: string[]): any;
/**
* keys
* @param obj
* @param array
*/
export function omit(obj: any, array: string[]): any;
/**
*
* @param list
*/
export function first<T>(list: T[] | ArrayLike<T>): T;
export function first(obj: any): any;
/**
*
* @param list
*/
export function last<T>(list: T[] | ArrayLike<T>): T;
/**
*
* @param obj
*/
export function last(obj: any): any;
/**
*
* @param list
* @param iterate
* @param context
*/
export function each<T, C = any>(list: T[] | ArrayLike<T>, iterate: (this: C, item: T, index: number, list: T[]) => void, context?: CSSKeyframeRule): void;
/**
*
* @param obj
* @param iterate
* @param context
*/
export function each<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => void, context?: C): void;
/**
* some, every
* @deprecated
*/
export function forOf<C = any>(obj: any, iterate: (this: C, item: any, index: any, obj: any) => boolean, context?: C): void;
/**
*
* @deprecated
*/
export function lastForOf<C = any>(obj: any, iterate: (this: C, item: any, index: any, obj: any) => boolean, context?: C): void;
/**
* ,
* @param list
* @param iterate
* @param context
*/
export function lastEach<T, C = any>(list: T[], iterate: (this: C, item: T, index: number, list: T) => void, context?: C): void;
export function lastEach<T, C = any>(obj: T, iterate: (this: C, item: any, key: string, obj: T) => void, context?: C): void;
export function lastEach<C = any>(obj: any[], iterate: (this: C, item: any, key: string, obj: any[]) => void, context?: C): void;
export function lastEach<C = any>(obj: any, iterate: (this: C, item: any, key: string, obj: any) => void, context?: C): void;
/**
*
* @param obj
* @param property
*/
export function has(obj: any, property: undefined | null | number | number[] | string | string[]): boolean;
/**
* undefined
* @param obj
* @param property
* @param defaultValue
*/
export function get<T extends object, K extends keyof T>(obj: T, property: undefined | null | number | number[] | string | string[], defaultValue?: any): T[K];
export function get(obj: any, property: undefined | null | number | number[] | string | string[], defaultValue?: any): any;
/**
*
* @param obj
* @param property
* @param value
*/
export function set(obj: any, property: string | string[], value: any): any;
/**
* ,使, iterate 使
* @param list
* @param iterate /
* @param context
*/
export function groupBy<T, C = any>(list: T[], iterate: string | number | ((this: C, item: T, index: number, obj: T[]) => string | number), context?: C): { [key: string]: T[] };
/**
* ,使, iterate 使
* @param obj
* @param iterate /
* @param context
*/
export function groupBy<T, C = any>(obj: T, iterate: string | number | ((this: C, item: any, key: string, obj: T) => string | number), context?: C): { [key: string]: any[] };
/**
* ,
* @param list
* @param iterate /
* @param context
*/
export function countBy<T, C = any>(list: T[], iterate: string | number | ((this: C, item: T, index: number, list: T[]) => string | number), context?: C): { [key: string]: number };
/**
* ,
* @param obj
* @param iterate /
* @param context
*/
export function countBy<T, C = any>(obj: T, iterate: string | number | ((this: C, item: any, key: string, obj: T) => string | number), context?: C): { [key: string]: number };
/**
* /
* @param obj
*/
export function clone<T>(obj: T): T;
/**
* /
* @param obj
* @param deep
*/
export function clone<T>(obj: T, deep: boolean): T;
/**
* ; defs如果不传)()
* @param obj
*/
export function clear<T>(obj: T): T;
/**
* ; defs如果不传)()
* @param obj
* @param defs
*/
export function clear<T>(obj: T, defs: any): T;
/**
* ; defs如果不传)()
* @param obj
* @param defs
* @param assigns
*/
export function clear<T, U>(obj: T, defs: any, assigns: U): T & U;
/**
*
* @param list
* @param iterate /
*/
export function remove<T, C>(list: T[], iterate: number | string | ((this: C, item: T, index: number, list: T[]) => boolean), context?: C): T[];
/**
*
* @param obj
* @param iterate /
*/
export function remove<C>(obj: any, iterate: number | string | ((this: C, item: any, key: string, obj: any) => boolean), context?: C): any;
/**
*
* @param start
* @param stop
*/
export function range(start: number, stop: number): number[];
/**
*
* @param start
* @param stop
* @param step
*/
export function range(start: number, stop: number, step: number): number[];
/**
*
* @param obj
* @param target
*/
export function destructuring<T>(obj: T, ...target: any[]): T;
/**
*
* @param min
* @param max
*/
export function random(min: number, max: number): number;
/**
*
* @param array
* @param iterate /
*/
export function min<T>(list: T[], iterate?: string | number | ((item: T, index: number, list: T[]) => number | string)): T | null | undefined;
/**
*
* @param list
* @param iterate /
*/
export function max<T>(list: T[], iterate: string | number | ((item: T, index: number, list: T[]) => number | string)): T | null | undefined;
export interface CommafyOptions {
/**
* 3
*/
spaceNumber?: number;
/**
* ','
*/
separator?: string;
/**
* number ,null
*/
digits?: number;
/**
* number true
*/
round?: boolean;
/**
* number
*/
ceil?: boolean;
/**
* number
*/
floor?: boolean;
}
/**
*
* @param num /
* @param options
*/
export function commafy(num: string | number, options?: CommafyOptions): string;
/**
*
* @param num /
* @param digits
*/
export function round(num: number, digits?: number): number;
export function round(num: any, digits?: number): number;
/**
*
* @param num /
*/
export function ceil(num: string | number): number;
/**
*
* @param num /
* @param digits
*/
export function ceil(num: string | number, digits: number): number;
/**
*
* @param num /
* @param digits
*/
export function floor(num: string | number, digits?: number): number;
/**
*
* @param num /
* @param digits
*/
export function toFixed(num: number | string | null, digits?: number): string;
export function toFixed(num: any, digits?: number): string;
/**
*
* @param num /
*/
export function toNumber(num: number | string | null): number;
export function toNumber(num: any): number;
/**
*
* @param num
*/
export function toNumberString(num: number | string | null): string;
export function toNumberString(num: any): string;
/**
*
* @param num /
*/
export function toInteger(num: number | string | null): number;
export function toInteger(num: any): number;
/**
*
* @param num1 1
* @param num2 2
*/
export function add(num1: number, num2: number): number;
/**
*
* @param num1 1
* @param num2 2
*/
export function subtract(num1: number, num2: number): number;
export function subtract(num1: any, num2: any): number;
/**
*
* @param num1 1
* @param num2 2
*/
export function multiply(num1: number, num2: number): number;
export function multiply(num1: any, num2: any): number;
/**
*
* @param num1 1
* @param num2 2
*/
export function divide(num1: number, num2: number): number;
/**
*
* @param obj /
* @param iterate
* @param context
*/
export function sum<T, C = any>(obj: T[], iterate?: string | number | ((this: C, item: T, index: number, list: T[]) => number), context?: C): number;
/**
*
* @param array /
* @param iterate
* @param context
*/
export function mean<T>(obj: T[], iterate?: string | number | ((item: T, index: number, list: T[]) => any), context?: any): number;
/**
*
*/
export function now(): number;
/**
*
* @param date //
* @param format yyyy MM dd HH mm ss SSS
*/
export function timestamp(date: string | Date | number, format?: string | null): number;
export function timestamp(date: any, format?: string | null): number;
/**
* Date对象
* @param val
*/
export function isValidDate(val: any): val is Date;
/**
*
* @param date1
* @param date2
* @param format
*/
export function isDateSame(date1: Date | number | string, date2: Date | number | string, format?: string | null): boolean;
export function isDateSame(date1: any, date2: any, format?: string | null): boolean;
/**
*
* @param str //
*/
export function toStringDate(str: string | Date | number | null): Date;
export function toStringDate(str: any): Date;
/**
*
* @param str //
* @param format yyyy MM dd HH mm ss SSS
*/
export function toStringDate(str: string | Date | number | null, format: string | null): Date;
export function toStringDate(str: any, format: string | null): Date;
export type ToDateStringFormats = {
/**
*
* [null, '第一季度', '第二季度', '第三季度', '第四季度']
*/
q?: string[] | {
1: string
2: string
3: string
4: string
} | ((value: string | number, match: string, date: Date) => string);
/**
*
* ['日', '一', '二', '三', '四', '五', '六']
*/
E?: string[] | {
0: string
1: string
2: string
3: string
4: string
5: string
6: string
} | ((value: string | number, match: string, date: Date) => string);
}
export interface ToDateStringOptions {
/**
*
*/
firstDay?: FirstDayOfWeek;
/**
*
*/
formats?: ToDateStringFormats
}
/**
* []
* @param date //
*/
export function toDateString(date: string | Date | number): string;
export function toDateString(date: any): string;
/**
* []
* @param date //
* @param format yyyy-MM-dd HH:mm:ss.SSS
*/
export function toDateString(date: string | Date | number, format: string | null): string;
export function toDateString(date: any, format: string | null): string;
/**
* []
* @param date //
* @param format yyyy-MM-dd HH:mm:ss.SSS
* @param options
*/
export function toDateString(date: string | Date | number, format: string | null, options: ToDateStringOptions): string;
export function toDateString(date: any, format: string | null, options: ToDateStringOptions): string;
/**
*
* @param date //
* @param year ()()()
*/
export function getWhatYear(date: string | Date | number, offset: number): Date;
/**
* (first)(last)(0~11)
* @param date //
* @param year ()()()
* @param month (first)(last)0-11
*/
export function getWhatYear(date: string | Date | number, offset: number, month: number | 'first' | 'last'): Date;
/**
*
* @param date //
* @param offset (0)
*/
export function getWhatQuarter(date: string | Date | number, offset: number): Date;
/**
* (first)(last)
* @param date //
* @param offset ()
* @param day (first)(last)()
*/
export function getWhatQuarter(date: string | Date | number, offset: number, day: number | 'first' | 'last'): Date;
/**
*
* @param date //
* @param offsetMonth (0)
*/
export function getWhatMonth(date: string | Date | number, offset: number): Date;
/**
* (first)(last)
* @param date //
* @param offsetMonth ()
* @param offsetDay (first)(last)()
*/
export function getWhatMonth(date: string | Date | number, offset: number, day: number | 'first' | 'last'): Date;
export type FirstDayOfWeek = 0 | 1 | 2 | 3 | 4 |5 | 6
/**
*
* @param date //
* @param offsetWeek ()
*/
export function getWhatWeek(date: string | Date | number, offsetWeek?: FirstDayOfWeek): Date;
/**
* ,(0~6)
* @param date //
* @param offsetWeek 0
* @param offsetDay 0123456
* @param firstDay
*/
export function getWhatWeek(date: string | Date | number, offsetWeek?: number, offsetDay?: FirstDayOfWeek, firstDay?: FirstDayOfWeek): Date;
/**
*
* @param date //
* @param offset (0)
*/
export function getWhatDay(date: string | Date | number, offset: number): Date;
/**
*
* @param date //
* @param offset (0)
* @param mode (first)(last)
*/
export function getWhatDay(date: string | Date | number, offset: number, mode: 'first' | 'last'): Date;
/**
*
* @param date //
*/
export function getYearDay(date: string | Date | number): number;
/**
*
* @param date //
* @param firstDay
*/
export function getYearWeek(date: string | Date | number, firstDay?: FirstDayOfWeek): number;
/**
*
* @param date //
* @param firstDay
*/
export function getMonthWeek(date: string | Date | number, firstDay?: FirstDayOfWeek): number;
/**
* ,
* @param date //
* @param offset (0)
*/
export function getDayOfYear(date: string | Date | number, offset: number): Date;
/**
* ,
* @param date //
* @param offset (0)
*/
export function getDayOfMonth(date: string | Date | number, offset: number): number;
export interface DateDiffResult {
/**
* done fasle
*/
done: boolean;
/**
*
*/
time: number;
/**
*
*/
yyyy: number;
/**
*
*/
MM: number;
/**
*
*/
dd: number;
/**
*
*/
HH: number;
/**
*
*/
mm: number;
/**
*
*/
ss: number;
/**
*
*/
S: number;
}
/**
* , done fasle
* @param startDate
* @param endDate
*/
export function getDateDiff(startDate: string | Date | number, endDate: string | Date | number): DateDiffResult;
/**
* , done fasle
* @param startDate
* @param endDate
*/
export function getDateDiff(startDate: string | Date | number, endDate: string | Date | number): DateDiffResult;
/**
*
* @param str
*/
export function trim(str: string): string;
export function trim(str: any): string;
/**
*
* @param str
*/
export function trimLeft(str: string): string;
export function trimLeft(str: any): string;
/**
*
* @param str
*/
export function trimRight(str: string): string;
export function trimRight(str: any): string;
/**
* HTML字符串&, <, >, ", ', \`字符
* @param str
*/
export function escape(str: string): string;
/**
* escape
* @param str
*/
export function unescape(str: string): string;
export function unescape(str: any): string;
/**
* , project-name projectName
* @param str
*/
export function camelCase(str: string): string;
/**
* , projectName project-name
* @param str
*/
export function kebabCase(str: string): string;
export function kebabCase(str: any): string;
/**
* n
* @param str
* @param count
*/
export function repeat(str: string, count: number): string;
export function repeat(str: any, count: number): string;
/**
*
* @param str
* @param targetLength
* @param padString
*/
export function padStart(str: string, targetLength: number, padString?: string): string;
export function padStart(str: any, targetLength: number, padString?: any): string;
/**
*
* @param str
* @param targetLength
* @param padString
*/
export function padEnd(str: string, targetLength: number, padString?: string): string;
export function padEnd(str: any, targetLength: number, padString?: any): string;
/**
*
* @param str
* @param val
* @param startIndex
*/
export function startsWith(str: number | string | null, val: string, startIndex?: number): string;
/**
*
* @param str
* @param val
*/
export function endsWith(str: string, val: string): string;
/**
*
* @param str
* @param val
* @param startIndex
*/
export function endsWith(str: string, val: string, startIndex: number): string;
/**
*
* @param str
* @param args
*/
export function template(str: string, args: any | any[]): string;
export function template(str: any, args: any | any[]): string;
export function template(str: string, args: any | any[], options: { tmplRE?: RegExp }): string;
export function template(str: any, args: any | any[], options: { tmplRE?: RegExp }): string;
/**
*
* @param { string } str
* @param { object | any[] } obj
*/
export function toFormatString(str: string | null, list: any[]): string;
export function toFormatString(str: any, obj: any): string;
/**
*
* @param obj
*/
export function toString(obj: any): string;
/**
*
* @param obj
*/
export function toValueString(obj: number | string | any[] | null): string;
export function toValueString(obj: any): string;
/**
*
* @param path
*/
export function property(path: string | null): Function;
/**
*
* @param callback
* @param context
* @param params
*/
export function bind<C = any>(callback: (this: C, ...args: any[]) => any, context?: C, ...params: any[]): (this: any, ...args: any[]) => any;
/**
* ,
* @param callback
* @param context
* @param params
*/
export function once<S, C = any>(callback: (this: S, ...args: any[]) => any, context?: C, ...params: any[]): (this: S | C, ...args: any[]) => any;
/**
* , count
* @param count
* @param callback
* @param context
*/
export function after<C = any>(count: number, callback: (this: C, ...args: any[]) => any, context?: C): (this: any, ...args: any[]) => any;
/**
* , count
* @param count
* @param callback
* @param context
*/
export function before<C = any>(count: number, callback: (this: C, rests: any[], ...args: any[]) => any, context?: C): (this: any, ...args: any[]) => any;
export interface ThrottleOptions {
/**
*
*/
leading?: boolean;
/**
*
*/
trailing?: boolean;
}
/**
* n n
* @param callback
* @param wait
* @param options
*/
export function throttle<C = any>(callback: (this: C, ...args: any[]) => any, wait: number, options?: ThrottleOptions): (this: C, ...args: any[]) => any;
export interface DebounceOptions {
/**
*
*/
leading?: boolean;
/**
*
*/
trailing?: boolean;
}
/**
* n
* @param callback
* @param wait
* @param options
*/
export function debounce<C = any>(callback: (this: C, ...args: any[]) => any, wait: number, options?: DebounceOptions): (this: C, ...args: any[]) => any;
/**
* setTimeout
* @param callback
* @param wait
* @param params
*/
export function delay(callback: (...args: any[]) => any, wait: number, ...params: any[]): number;
export interface XEUrl {
/**
*
*/
href: string;
/**
* #Hash
*/
hash: string;
/**
*
*/
host: string;
/**
*
*/
hostname: string;
/**
*
*/
protocol: string;
/**
*
*/
port: string;
/**
*
*/
search: string;
/**
*
*/
pathname: string;
/**
* #hash
*/
origin: string;
/**
* #hash
*/
hashKey: string;
/**
* #hash
*/
hashQuery: any;
/**
*
*/
searchQuery: any;
}
/**
* URL
* @param ulr
*/
export function parseUrl(ulr: string): XEUrl;
export function parseUrl(ulr: any): XEUrl;
/**
*
* @param query
*/
export function serialize(query: any): string;
/**
*
* @param str
*/
export function unserialize(str: string): any;
export function unserialize(str: any): any;
/**
*
*/
export function getBaseURL(): string;
/**
*
*/
export function locat(): XEUrl;
export interface XEBrowse {
/**
* NodeJs
*/
isNode: boolean;
/**
* document
*/
isDoc: boolean;
/**
* Edge
*/
edge: boolean;
/**
* Firefox
*/
firefox: boolean;
/**
* IE
*/
msie: boolean;
/**
* Safari
*/
safari: boolean;
/**
*
*/
isMobile: boolean;
/**
* PC
*/
isPC: boolean;
/**
* LocalStorage
*/
isLocalStorage: boolean;
/**
* SessionStorage
*/
isSessionStorage: boolean;
/**
* -webkit
*/
'-webkit': boolean;
/**
* -moz
*/
'-moz': boolean;
/**
* -ms
*/
'-ms': boolean;
/**
* -o
*/
'-o': boolean;
}
/**
*
*/
export function browse(): XEBrowse;
export interface CookieOptions {
/**
*
*/
name?: string;
/**
*
*/
value?: string;
/**
*
*/
path?: string;
/**
*
*/
domain?: string;
/**
* ,https协议
*/
secure?: string;
/**
* ,
*/
expires?: string;
}
/**
* Cookie
*/
export function CookieFunc(): XECookie;
/**
* Cookie
* @param name //
*/
export function CookieFunc(name: string): XECookie;
/**
* Cookie
* @param name //
* @param value
*/
export function CookieFunc(name: string, value: any): XECookie;
/**
* Cookie
* @param name //
* @param value
* @param options
*/
export function CookieFunc(name: string, value: any, options: CookieOptions): XECookie;
export type XECookie = typeof CookieFunc & {
/**
* name Cookie
* @param name
*/
has(name: string): boolean;
/**
* Cookie
* @param name
* @param value
* @param options
*/
set(name: string, value: any, options?: CookieOptions): XECookie;
/**
* name Cookie
* @param name
*/
get(name: string): string;
/**
* name Cookie
* @param name
* @param options
*/
remove(name: string, options?: CookieOptions): number;
/**
* Cookie
*/
keys(): any[];
/**
* Cookie
*/
getJSON(): any;
}
export const cookie: XECookie
}