@tplc/wot
Version:
284 lines (283 loc) • 9.55 kB
TypeScript
import { AbortablePromise } from './AbortablePromise'
type NotUndefined<T> = T extends undefined ? never : T
/**
* 生成uuid
* @returns string
*/
export declare function uuid(): string
/**
* @description 对num自动填充px
* @param {Number} num
* @return {string} num+px
*/
export declare function addUnit(num: number | string): string
/**
* @description 判断target是否对象
* @param value
* @return {boolean}
*/
export declare function isObj(value: any): value is object
/**
* 获取目标原始类型
* @param target 任意类型
* @returns {string} type 数据类型
*/
export declare function getType(target: unknown): string
/**
* @description 默认的外部格式化函数 - picker 组件
* @param items - 要格式化的数据项数组或单个数据项
* @param kv - 配置对象,包含 labelKey 作为键值
* @returns 格式化后的字符串
*/
export declare const defaultDisplayFormat: (
items: any[] | Record<string, any>,
kv?: {
labelKey?: string
},
) => string
/**
* @description 默认函数占位符 - pickerView组件
* @param value 值
* @return value
*/
export declare const defaultFunction: <T>(value: T) => T
/**
* @description 检查值是否不为空
* @param value 值
* @return {Boolean} 是否不为空
*/
export declare const isDef: <T>(value: T) => value is NonNullable<T>
/**
* @description 防止数字小于零
* @param {number} num
* @param {string} label 标签
*/
export declare const checkNumRange: (num: number, label?: string) => void
/**
* @description 防止 pixel 无意义
* @param {number} num
* @param {string} label 标签
*/
export declare const checkPixelRange: (num: number, label?: string) => void
/**
* 将 RGB 值转换为十六进制颜色代码。
* @param {number} r - 红色分量 (0-255)。
* @param {number} g - 绿色分量 (0-255)。
* @param {number} b - 蓝色分量 (0-255)。
* @returns {string} 十六进制颜色代码 (#RRGGBB)。
*/
export declare function rgbToHex(r: number, g: number, b: number): string
/**
* 计算渐变色的中间变量数组。
* @param {string} startColor 开始颜色
* @param {string} endColor 结束颜色
* @param {number} step 获取渲染位置,默认为中间位置
* @returns {string[]} 渐变色中间颜色变量数组
*/
export declare const gradient: (startColor: string, endColor: string, step?: number) => string[]
/**
* 确保数值不超出指定范围。
* @param {number} num 要限制范围的数值
* @param {number} min 最小范围
* @param {number} max 最大范围
* @returns {number} 在指定范围内的数值
*/
export declare const range: (num: number, min: number, max: number) => number
/**
* 比较两个值是否相等。
* @param {any} value1 第一个值
* @param {any} value2 第二个值
* @returns {boolean} 如果值相等则为 true,否则为 false
*/
export declare const isEqual: (value1: any, value2: any) => boolean
/**
* 在数字前补零,使其达到指定长度。
* @param {number | string} number 要补零的数字
* @param {number} length 目标长度,默认为 2
* @returns {string} 补零后的结果
*/
export declare const padZero: (number: number | string, length?: number) => string
/** @description 全局变量id */
export declare const context: {
id: number
}
export type RectResultType<T extends boolean> = T extends true ? UniApp.NodeInfo[] : UniApp.NodeInfo
/**
* 获取节点信息
* @param selector 节点选择器 #id,.class
* @param all 是否返回所有 selector 对应的节点
* @param scope 作用域(支付宝小程序无效)
* @returns 节点信息或节点信息数组
*/
export declare function getRect<T extends boolean>(
selector: string,
all: T,
scope?: any,
): Promise<RectResultType<T>>
/**
* 将驼峰命名转换为短横线命名。
* @param {string} word 待转换的词条
* @returns {string} 转换后的结果
*/
export declare function kebabCase(word: string): string
/**
* 将短横线链接转换为驼峰命名
* @param word 需要转换的短横线链接
* @returns 转换后的驼峰命名字符串
*/
export declare function camelCase(word: string): string
/**
* 检查给定值是否为数组。
* @param {any} value 要检查的值
* @returns {boolean} 如果是数组则返回 true,否则返回 false
*/
export declare function isArray(value: any): value is Array<any>
/**
* 检查给定值是否为函数。
* @param {any} value 要检查的值
* @returns {boolean} 如果是函数则返回 true,否则返回 false
*/
export declare function isFunction<T extends Function>(value: any): value is T
/**
* 检查给定值是否为字符串。
* @param {unknown} value 要检查的值
* @returns {value is string} 如果是字符串则返回 true,否则返回 false
*/
export declare function isString(value: unknown): value is string
/**
* 否是数值
* @param {*} value
*/
export declare function isNumber(value: any): value is number
/**
* 检查给定值是否为 Promise 对象。
* @param {unknown} value 要检查的值
* @returns {value is Promise<any>} 如果是 Promise 对象则返回 true,否则返回 false
*/
export declare function isPromise(value: unknown): value is Promise<any>
/**
* 检查给定的值是否为布尔类型
* @param value 要检查的值
* @returns 如果值为布尔类型,则返回true,否则返回false
*/
export declare function isBoolean(value: any): value is boolean
export declare function isUndefined(value: any): value is undefined
export declare function isNotUndefined<T>(value: T): value is NotUndefined<T>
/**
* 检查给定的值是否为奇数
* @param value 要检查的值
* @returns
*/
export declare function isOdd(value: number): boolean
/**
* 是否为base64图片
* @param {string} url
* @return
*/
export declare function isBase64Image(url: string): boolean
/**
* 将外部传入的样式格式化为可读的 CSS 样式。
* @param {object | object[]} styles 外部传入的样式对象或数组
* @returns {string} 格式化后的 CSS 样式字符串
*/
export declare function objToStyle(styles: Record<string, any> | Record<string, any>[]): string
export declare const requestAnimationFrame: (cb?: () => void) => AbortablePromise<unknown>
/**
* 暂停指定时间函数
* @param ms 延迟时间
* @returns
*/
export declare const pause: (ms: number) => AbortablePromise<unknown>
/**
* 深拷贝函数,用于将对象进行完整复制。
* @param obj 要深拷贝的对象
* @param cache 用于缓存已复制的对象,防止循环引用
* @returns 深拷贝后的对象副本
*/
export declare function deepClone<T>(obj: T, cache?: Map<any, any>): T
/**
* 深度合并两个对象。
* @param target 目标对象,将合并的结果存放在此对象中
* @param source 源对象,要合并到目标对象的对象
* @returns 合并后的目标对象
*/
export declare function deepMerge<T extends Record<string, any>>(
target: T,
source: Record<string, any>,
): T
/**
* 深度合并两个对象。
* @param target
* @param source
* @returns
*/
export declare function deepAssign(
target: Record<string, any>,
source: Record<string, any>,
): Record<string, any>
/**
* 构建带参数的URL
* @param baseUrl 基础URL
* @param params 参数对象,键值对表示要添加到URL的参数
* @returns 返回带有参数的URL
*/
export declare function buildUrlWithParams(baseUrl: string, params: Record<string, string>): string
type DebounceOptions = {
leading?: boolean
trailing?: boolean
}
export declare function debounce<T extends (...args: any[]) => any>(
func: T,
wait: number,
options?: DebounceOptions,
): T
export declare function throttle(func: Function, wait: number): Function
/**
* 根据属性路径获取对象中的属性值
* @param obj 目标对象
* @param path 属性路径,可以是字符串或字符串数组
* @returns 属性值,如果属性不存在或中间的属性为 null 或 undefined,则返回 undefined
*/
export declare const getPropByPath: (obj: any, path: string) => any
/**
* 检查一个值是否为Date类型
* @param val 要检查的值
* @returns 如果值是Date类型,则返回true,否则返回false
*/
export declare const isDate: (val: unknown) => val is Date
/**
* 检查提供的URL是否为视频链接。
* @param url 需要检查的URL字符串。
* @returns 返回一个布尔值,如果URL是视频链接则为true,否则为false。
*/
export declare function isVideoUrl(url: string): boolean
/**
* 检查提供的URL是否为图片URL。
* @param url 待检查的URL字符串。
* @returns 返回一个布尔值,如果URL是图片格式,则为true;否则为false。
*/
export declare function isImageUrl(url: string): boolean
/**
* 判断环境是否是H5
*/
export declare const isH5: boolean
/**
* 剔除对象中的某些属性
* @param obj
* @param predicate
* @returns
*/
export declare function omitBy<O extends Record<string, any>>(
obj: O,
predicate: (value: any, key: keyof O) => boolean,
): Partial<O>
/**
* 缓动函数,用于在动画或过渡效果中根据时间参数计算当前值
* @param t 当前时间,通常是从动画开始经过的时间
* @param b 初始值,动画属性的初始值
* @param c 变化量,动画属性的目标值与初始值的差值
* @param d 持续时间,动画持续的总时间长度
* @returns 计算出的当前值
*/
export declare function easingFn(t?: number, b?: number, c?: number, d?: number): number
export {}