/** * @file util 工具函数 */ import { FunctionAny, FunctionParams } from '../types'; /** * 生成全局唯一标识符 * * @return 返回一个guid */ export declare function guid(): string; /** * 获取变量的类型 * * @param obj 要检查的变量 * @return 类型字符串,对于对象化的内置类型的也返回其原始类型 */ export declare function type(obj: unknown): string; /** * 克隆一个朴素对象(不对宿主对象进行检测) * * @param obj 要clone的对象 * @return 返回和原对象一样类型的对象 */ export declare function clone(obj: T): T; /** * 克隆一个复杂对象(不对宿主对象进行检测) * * @param obj 要克隆的对象 * @return 返回克隆对象 */ export declare function deepClone(obj: T): T; /** * 合并classnames成一个字符串 * * @return 返回一个className字符串 */ export declare function classnames(...classNames: Array): string; /** * 判断两个变量是否严格相同 * * @param first 第一个变量 * @param second 第二个变量 * @return 返回对象是否相同 */ export declare function equal(first: unknown, second: unknown): boolean; /** * 判断两个对象是否浅表相同 * * @param first 第一个对象 * @param second 第二个对象 * @return 返回对象是否相同 */ export declare function shallowEqual(first: unknown, second: unknown): boolean; export declare function deepEqual(first: unknown, second: unknown): boolean; /** * 函数节流 * * @param fn 要节流的函数 * @param delay 节流时间间隔 */ export declare function throttle(fn: T, delay: number): (...args: FunctionParams) => void; interface IDebounceSettings { leading?: boolean; maxWait?: number; trailing?: boolean; } interface IInterDebounce { (context?: U, ...args: FunctionParams): void | R; cancel(): void; flush(): void; } /** * 防抖 * @param func 要防抖的函数 * @param wait 延时 * @param options 选项 */ export declare function debounce(func: T, delay?: number, options?: IDebounceSettings): IInterDebounce; /** * 生成一个tuple类型数组 * * @param args */ export declare function tuple(...args: T): T; /** * 拾取对象属性,并返回需要的和剩余的属性 * * @param obj 要处理的对象 * @param keys 要拾取的key */ export declare function pick(obj: T, keys: K[]): [Pick, Omit]; /** * 拾取对象属性,并返回需要的和剩余的属性 * * @param obj 要处理的对象 * @param keys 要拾取的key */ export declare function omit(obj: T, keys: K[]): Omit; export declare const UNIQUE_KEY_REF: unique symbol; /** * 获取对象的唯一key,对于两个调用equal函数返回相同的对象来说,一定反回相同的字符串,不同的对象一定不同 * * @param obj 要获取的对象 * @return 返回一个key的字符串 */ export declare function getUniqueKey(obj: unknown): string; /** * 将字符串或者数组转变成值为true的列表 * * @param str 要产生对象的字符串或者数组 * @param splitChar 分隔符 */ export declare function keyMirror(str: string | number | Array, splitChar?: string): { [key: string]: string; }; /** * 根据一组key从一个对象中获取属性 * * @param obj 要获取的对象 * @param keys 键数组 * @param index 开始索引 */ export declare function getObjectProperty(obj: unknown, keys?: Array, index?: number): unknown; /** * 根据一组key在一个对象设置属性 * * @param obj 要获取的对象 * @param value 要设置的值 * @param keys 键数组 * @param index 开始索引 */ export declare function setObjectProperty(obj: unknown, value: unknown, keys: Array, index?: number): boolean; export declare function padding(str: string, len: 1 | 2 | 3 | 4, padStr?: string): string; /** * 获取对象的属性名数组 * * @param obj 要获取的对象 */ export declare function getKeys(obj: T): Array; export declare function camelCase(str: string, prefix?: string): string; export declare function pascalCase(str: string, prefix?: string): string; /** * 属性驼峰化 * * @param target 目标字符串 * @return 返回转换后的字符串 */ export declare function camelize(target: string): string; /** * 判断对象是否是window对象 * @param obj * @return 返回是否是window对象 */ export declare function isWindow(obj: unknown): obj is Window; export declare function uniqueString(arr: Array): string[]; export declare function uniqueNumber(arr: number[]): number[]; export declare function shallowMerge(source1: T, source2: U): T & U; export declare function shallowArray(first: T[], second: T[], compareFn?: (a: T, b: T) => number): boolean; export declare function mixin(Base: { prototype: unknown; }, ...args: Array<{ prototype: unknown; }>): void; export interface ICreateMapItem { item: T; index: number; } export declare function createMap(list: T[], getKey?: (item: T) => string): Record>; export declare function isKorean(text: string): boolean; /** * 根据对象格式化字符串 * * @param source 模板字符串 * @param opts 参数 * @return 渲染结果 */ export declare function format(source: string, opts: unknown): string; export {}; //# sourceMappingURL=index.d.ts.map