my-uniapp-tools
Version:
一个简洁稳定的 uni-app 开发工具库,提供剪贴板、本地存储、导航、系统信息等常用功能
59 lines (58 loc) • 1.96 kB
TypeScript
/**
* 工具函数库
*/
/**
* 高性能深拷贝(uni-app 多端兼容)
* @description H5 环境优先使用 structuredClone,降级为 JSON 序列化
*/
export declare function deepClone<T>(obj: T): T;
/**
* 深度合并对象
*/
export declare function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T;
/**
* 只合并目标对象中已存在的字段
* @description 避免后端返回的冗余字段污染前端表单状态
*/
export declare function mergeObjects<T extends Record<string, any>, U extends Record<string, any>>(base: T, incoming: U): T;
/**
* 防抖函数
* @description 延迟执行,重复触发则重置定时器
* @param func 要防抖的函数
* @param wait 延迟时间(毫秒)
* @param immediate 是否立即执行(首次触发时)
* @returns 防抖包装后的函数,附带 cancel 方法
*/
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number, immediate?: boolean): T & {
cancel: () => void;
};
/**
* 节流函数
* @description 限制执行频率,确保在时间窗口内只执行一次
* @param func 要节流的函数
* @param wait 时间窗口(毫秒)
* @param options.leading 是否在时间窗口开始时执行(默认 true)
* @param options.trailing 是否在时间窗口结束时执行(默认 true)
* @returns 节流包装后的函数,附带 cancel 方法
*/
export declare function throttle<T extends (...args: any[]) => any>(func: T, wait: number, options?: {
leading?: boolean;
trailing?: boolean;
}): T & {
cancel: () => void;
};
export interface UrlParams {
[key: string]: string;
}
/**
* 获取 H5 环境下的 URL 参数
* @description 仅在 H5 环境有效
*/
export declare const getH5UrlParams: (paramName?: string) => string | null | UrlParams;
/**
* 从URL中提取页面路径和参数
*/
export declare function extractUrlParts(url: string): {
path: string;
params: Record<string, string>;
};