@ivujs/i-utils
Version:
前端模块化 JavaScript 工具库
2,047 lines (2,024 loc) • 90.4 kB
TypeScript
/**
* 排序相关常量配置(全局只读)
*
* DESC: 降序
* - 取值:0
*
* ASC: 升序
* - 取值:1
*
* RANDOM: 随机排序
* - 取值:2
*/
declare const SORT: Record<string, number>;
/**
* 数学计算相关常量配置(全局只读)
*
* ROUND: 正常四舍五入
* - 取值:0
* - 示例:1.354保留两位是1.35;1.355保留两位是1.36
*
* ROUND_FLOOR: 向下舍出
* - 取值:1
* - 示例:1.354保留两位是1.35;1.355保留两位是1.35
*/
declare const MATH: Record<string, any>;
/**
* 语言相关常量配置(全局只读)
*
* ZH: 中文
* - zh
*
* EN: 英文
* - en
*/
declare const LANG: Record<string, any>;
/**
* 正则表达式相关常量配置(全局只读)
*
* CH: 中文汉字
* EN: 英文字母
* LOWER_CASE: 小写字母
* UPPER_CASE: 大写字母
* CH_NAME: 中文姓名(2-16位)
* EN_NAME: 英文姓名(1-20位)
* NUMBER: 数字(包含正数和负数)
* INTEGER: 整数(包含:0,正整数和负整数)
* DECIMAL: 小数(包含正小数和负小数)
* INT_OR_FLOAT: 正整数或者保留两位小数
* MOBILE: 手机号码(支持+86)
* PHONE: 固定电话号码(比如:0755-1111111)
* EMAIL: 邮箱
* ID_CARD: 一代15位或二代18位身份证
* ID_CARD15: 仅校验一代15位身份证
* ID_CARD18: 仅校验二代18位身份证
* BANK_CARD: 银行卡号
* POST_CODE: 邮政编码
* URL: url地址(可获取主机地址、主机名、端口号、协议、查询参数、hash等信息)
* IP: ip地址
* IP6: IPv6地址
* EXTERNAL: 外链(http、https、mail、tel电话)
*/
declare const REGEXP: Record<string, RegExp>;
/**
* 日期相关的多语言常量配置(全局只读)
*
* AM_PM: 上午/下午多语言配置
* - zh: { AM: "上午", PM: "下午" }
* - en: { AM: "AM", PM: "PM" }
*
* WEEK: 星期多语言配置
* - zh.FULL: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
* - zh.SHORT: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
* - zh.MINI: ["日", "一", "二", "三", "四", "五", "六"]
* - en.FULL: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
* - en.SHORT: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
* - en.MINI: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
*
* MONTH: 月份多语言配置
* - zh.FULL: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
* - zh.SHORT: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"]
* - en.FULL: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
* - en.SHORT: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
*
* QUARTER: 季度多语言配置
* - zh.FULL: ["第一季度", "第二季度", "第三季度", "第四季度"]
* - zh.SHORT: ["一季度", "二季度", "三季度", "四季度"]
* - zh.MINI: ["一", "二", "三", "四"]
* - en.FULL: ["quarter 1st", "quarter 2nd", "quarter 3rd", "quarter 4th"]
* - en.SHORT: ["Q1th", "Q2nd", "Q3rd", "Q4th"]
* - en.MINI: ["Q1", "Q2", "Q3", "Q4"]
*
* OVER_TIME: 剩余时间单位多语言配置
* - zh: { YEAR: "年", MONTH: "月", DATE: "日", HOUR: "时", MINUTE: "分", SECOND: "秒", MILLISECOND: "毫秒", DAY: "天", QUARTER: "季度" }
* - en: { YEAR: "year", MONTH: "month", DATE: "date", HOUR: "hour", MINUTE: "minute", SECOND: "second", MILLISECOND: "millisecond", DAY: "day", QUARTER: "quarter" }
*
* PASS_TIME: 过去时间描述多语言配置
* - zh: { YEAR: "年前", MONTH: "个月前", DAY: "天前", BEFORE_YESTERDAY: "前天", YESTERDAY: "昨天", TODAY: "今天", HOUR: "小时前", MINUTE: "分钟前", JUST: "刚刚" }
* - en: { YEAR: " year ago", MONTH: " month ago", DAY: " day ago", BEFORE_YESTERDAY: "before yesterday", YESTERDAY: " yesterday", TODAY: " today", HOUR: " hour ago", MINUTE: " minute ago", JUST: " just" }
*
* HOLIDAY: 节假日多语言配置
* - zh: ["元旦", "春节", "清明节", "劳动节", "端午节", "中秋节", "国庆节"]
* - en: ["New Year‘s Day", "Spring Festival", "Tomb Sweeping Day", "Labor Day", "Dragon Boat Festival", "Mid-Autumn Day", "National Day"]
*
* ZODIAC: 星座多语言配置
* - zh: ["摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座"]
* - en: ["Capricorn", "Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius"]
*
* CHINESE_ZODIAC: 生肖多语言配置
* - zh: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]
* - en: ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"]
*
* HEAVENLY_STEMS: 天干多语言配置
* - zh: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
* - en: ["Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"]
*
* EARTHLY_BRANCHES: 地支多语言配置
* - zh: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]
* - en: ["Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "You", "Xu", "Hai"]
*/
declare const DATE: Record<string, any>;
/**
* 键盘码相关常量配置(全局只读)
*
* 字符键:
* - 8: Backspace
* - 9: Tab
* - 13: Enter
* - 16: Shift
* - 17: Ctrl
* - 18: Alt
* - 19: Pause
* - 20: Caps Lock
* - 27: Escape
* - 32: Space
* - 33: Page Up
* - 34: Page Down
* - 35: End
* - 36: Home
* - 37: Left
* - 38: Up
* - 39: Right
* - 40: Down
* - 42: Print Screen
* - 45: Insert
* - 46: Delete
*
* 数字键:
* - 48: 0
* - 49: 1
* - 50: 2
* - 51: 3
* - 52: 4
* - 53: 5
* - 54: 6
* - 55: 7
* - 56: 8
* - 57: 9
*
* 字母键:
* - 65: A
* - 66: B
* - 67: C
* - 68: D
* - 69: E
* - 70: F
* - 71: G
* - 72: H
* - 73: I
* - 74: J
* - 75: K
* - 76: L
* - 77: M
* - 78: N
* - 79: O
* - 80: P
* - 81: Q
* - 82: R
* - 83: S
* - 84: T
* - 85: U
* - 86: V
* - 87: W
* - 88: X
* - 89: Y
* - 90: Z
*
* window 相关键:
* - 91: Windows
* - 93: Right Click
*
* 数字小键盘(Numpad):
* - 96: Numpad 0
* - 97: Numpad 1
* - 98: Numpad 2
* - 99: Numpad 3
* - 100: Numpad 4
* - 101: Numpad 5
* - 102: Numpad 6
* - 103: Numpad 7
* - 104: Numpad 8
* - 105: Numpad 9
* - 106: Numpad *
* - 107: Numpad +
* - 109: Numpad -
* - 110: Numpad .
* - 111: Numpad /
*
* F功能键:
* - 112: F1
* - 113: F2
* - 114: F3
* - 115: F4
* - 116: F5
* - 117: F6
* - 118: F7
* - 119: F8
* - 120: F9
* - 121: F10
* - 122: F11
* - 123: F12
*
* 特殊符号/功能键:
* - 144: Num Lock
* - 145: Scroll Lock
* - 182: My Computer
* - 183: My Calculator
* - 186: ;
* - 187: =
* - 188: ,
* - 189: -
* - 190: .
* - 191: /
* - 192: `
* - 219: [
* - 220: \
* - 221: ]
* - 222: '
*/
declare const KEYCODE: Record<string, string>;
/**
* 身份证号相关常量配置(全局只读)
*
* PROVINCE: 身份证号前两位对应的省份/地区编码映射
* - 11: 北京
* - 12: 天津
* - 13: 河北
* - 14: 山西
* - 15: 内蒙古
* - 21: 辽宁
* - 22: 吉林
* - 23: 黑龙江
* - 31: 上海
* - 32: 江苏
* - 33: 浙江
* - 34: 安徽
* - 35: 福建
* - 36: 江西
* - 37: 山东
* - 41: 河南
* - 42: 湖北
* - 43: 湖南
* - 44: 广东
* - 45: 广西
* - 46: 海南
* - 50: 重庆
* - 51: 四川
* - 52: 贵州
* - 53: 云南
* - 54: 西藏
* - 61: 陕西
* - 62: 甘肃
* - 63: 青海
* - 64: 宁夏
* - 65: 新疆
* - 71: 台湾
* - 81: 香港
* - 82: 澳门
* - 91: 国外
*
* SEX: 身份证号解析的性别映射
* - MAN: 男
* - WOMAN: 女
*/
declare const ID_CARD: Record<string, any>;
/**
* 字符串中是否包含指定的元素
* @param {string} value 包含的元素
* @param {string} str 查找的字符串
* @returns {boolean} 返回true和false
*/
declare function inString(value: string, str: string): boolean;
/**
* 去除字符串前后位置空格
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function trim(value: string): string;
/**
* 去除字符串开始位置的空格
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function trimStart(value: string): string;
/**
* 去除字符串结束位置的空格
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function trimEnd(value: string): string;
/**
* 去除字符串中全部的空格
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function trimAll(value: string): string;
/**
* 替换所有指定字符串为新的字符串
* @param {string} value 参数
* @param {string} oldSubstr 需要替换的字符串
* @param {string} newSubstr 替换后的字符串
* @returns {string} 返回处理后的字符串
*/
declare function replaceAll(value: string, oldSubstr: string, newSubstr: string): string;
/**
* 字符串转大写
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toUpperCase(value: string): string;
/**
* 字符串转小写
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toLowerCase(value: string): string;
/**
* 转为 snake_case 下划线命名
* @description 支持 驼峰命名,短横命名,帕斯卡命名
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toSnakeCase(value: string): string;
/**
* 转为 kebab-case 短横命名
* @description 支持 下划线,驼峰命名,帕斯卡命名
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toKebabCase(value: string): string;
/**
* 转为 camelCase 驼峰命名
* @description 支持 下划线命名,短横命名,帕斯卡命名
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toCamelCase(value: string): string;
/**
* 转为 PascalCase 帕斯卡命名
* @description 支持 下划线命名,短横命名,驼峰命名
* @param {string} value 参数
* @returns {string} 返回处理后的字符串
*/
declare function toPascalCase(value: string): string;
/**
* 数字前补齐0达到指定位数
* @description 相当于原生的 padStart(2,'0')
* @param {number|string} value 补零的数字
* @param {number} maxLength 补齐0后的最大长度,默认2位
* @returns {string} 返回补0后指定位数的字符串
*/
declare function padZeroStart(value: string | number, maxLength?: number): string;
/**
* 数字后补齐0达到指定位数
* @description 相当于原生的 padEnd(2,'0')
* @param {number|string} value 补零的数字
* @param {number} maxLength 补齐0后的最大长度,默认2位
* @returns {string} 返回补0后指定位数的字符串
*/
declare function padZeroEnd(value: string | number, maxLength?: number): string;
/**
* 格式化为标题样式
* @param {string} value 字符串值
* @returns {string} 返回格式化后的标题样式
*/
declare function formatTitle(value: string): string;
/**
* 格式化字符串模版
* @param {string} value 字符串值
* @param {Object} data 模版数据
* @returns {string} 返回格式化后的模版字符串
*/
declare function formatTemplate(value: string, data: Record<any, any>): string;
/**
* 格式化千分位数字
* @description 支持任意数据传参,如果非数字则不会格式化,并返回原数据
* @param {number|string} num 数字
* @returns {string} 返回格式化后的千分位数字
*/
declare function formatThousand(num: number | string): string;
/**
* 格式化人民币金额大写
* @param {number|string} money 金额
* @returns {string} 返回金额大写
*/
declare function formatRmbChinese(money: number | string): string;
/**
* 转为数字类型
* @description 解决部分浏览器在转换 '08','09'等是0开头时被默认转8进制问题
* @param {string|number} value 转换的值
* @param {number} radix 进制数,默认10进制
* @returns {number} 返回转换后的数字
*/
declare function parseInt(value: string | number, radix?: number): number;
/**
* 转为小数类型
* @param {string|number} value 转换的值
* @returns {number} 返回转换后的数字
*/
declare function parseFloat(value: string | number): number;
/**
* 数组最小值
* @param {Array} array 数组
* @returns {number} 返回最小值
*/
declare function arrayMin(array: any[]): number;
/**
* 数组最大值
* @param {array} array 数组
* @returns {number} 返回最大值
*/
declare function arrayMax(array: any[]): number;
/**
* 数组求和
* @param {Array} array 数组
* @returns {number} 返回和
*/
declare function arraySum(array: any[]): number;
/**
* 数组求平均值
* @param {Array} array 数组
* @returns {number} 返回平均数
*/
declare function arrayAvg(array: any[]): number;
/**
* 数组中是否包含指定的元素
* @param {string|number} value 元素
* @param {Array} array 查找的数组
* @returns {boolean} 返回结果
*/
declare function inArray(value: string | number, array: any[]): boolean;
/**
* 比较两个数组是否相等
* @param {Array} array1 数组1
* @param {Array} array2 数组2
* @returns {boolean} 返回结果
*/
declare function arrayEquals(array1: any[], array2: any[]): boolean;
/**
* 生成指定长度的数组
* @param {number} length 长度,默认 0
* @returns {Array} 返回数组
*/
declare function arrayCreate(length?: number): number[];
/**
* 数组指定位置添加元素
* @description 如果数组为空,则在0位置添加元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @param {*} value 添加的元素
* @returns {Array} 返回操作后的数组
*/
declare function arrayInsert(array?: any[], index?: number, value?: any): any[];
/**
* 数组指定位置前面添加元素
* @description 如果数组为空,则在0位置添加元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @param {*} value 添加的元素
* @returns {Array} 返回操作后的数组
*/
declare function arrayInsertBefore(array?: any[], index?: number, value?: any): any[];
/**
* 数组指定位置后面添加元素
* @description 如果数组为空,则在0位置添加元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @param {*} value 添加的元素
* @returns {Array} 返回操作后的数组
*/
declare function arrayInsertAfter(array?: any[], index?: number, value?: any): any[];
/**
* 数组指定位置删除元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayRemove(array?: any[], index?: number): any[];
/**
* 数组指定位置前面删除元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayRemoveBefore(array?: any[], index?: number): any[];
/**
* 数组指定位置后面删除元素
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayRemoveAfter(array?: any[], index?: number): any[];
/**
* 数组置顶
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayTop(array?: any[], index?: number): any[];
/**
* 数组置尾
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayBottom(array?: any[], index?: number): any[];
/**
* 数组向上移动
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayUp(array?: any[], index?: number): any[];
/**
* 数组向下移动
* @param {Array} array 数组
* @param {number} index 下标位置,默认0
* @returns {Array} 返回操作后的数组
*/
declare function arrayDown(array?: any[], index?: number): any[];
/**
* 数组交换元素
* @param {Array} array 数组
* @param {number} sourceIndex 原索引
* @param {number} targetIndex 目标索引
* @returns {Array} 返回操作后的数组
*/
declare function arraySwap(array: any[], sourceIndex: number, targetIndex: number): any[];
/**
* 数组排序
* @param {Array} array 数组
* @param {number} mode 排序模式,参考常量集合中 数组常量,默认是升序
* @returns {Array} 返回操作后的数组
*/
declare function arraySort(array: any[], mode?: number): any[];
/**
* 数组属性混合排序
* @description 排序默认为asc升序
* @param {Array} array 数组
* @param {Array} props 排序的属性
* @returns {Array} 返回操作后的数组
*/
declare function arraySortBy(array: any[], props: any[]): any[];
/**
* 数组元素去重
* @param {Array} array 数组
* @returns {Array} 返回操作后的数组
*/
declare function arrayUnique(array: any[]): any[];
/**
* 数组打乱元素
* @description 可以适用于一些抽奖人员列表打乱顺序
* @param {Array} array 数组
* @returns {Array} 返回操作后的数组
*/
declare function arrayShuffle(array: any[]): any[];
/**
* 普通数组转树形结构
* @description 包含id和pid属性关系的一维数组,转为children的树形结构
* @param {Array} array 数组
* @param {Object} setting 配置项
* @returns {Array} 返回树形节点
*/
declare function arrayToTree(array: any[], setting?: {
key: string;
parentKey: string;
childrenKey: string;
}): any[];
/**
* 树形结构转普通数组
* @param {Array} nodes 树形节点
* @param {Object} setting 配置项
* @returns {Array} 返回普通数组
*/
declare function treeToArray(nodes: any[], setting?: {
childrenKey: string;
}): any[];
/**
* 数组求并集
* @description 数组1 和 数组2 合并一起的元素集合
* @param {Array} array1 数组1
* @param {Array} array2 数组2
* @returns {Array} 返回数组
*/
declare function arrayUnion(array1: any[], array2: any[]): any[];
/**
* 数组求交集
* @description 数组1 和 数组2 相同的元素集合
* @param {Array} array1 数组1
* @param {Array} array2 数组2
* @returns {Array} 返回数组
*/
declare function arrayIntersect(array1: any[], array2: any[]): any[];
/**
* 数组求差集
* @description 数组1 中不包含 数组2 的元素集合
* @param {Array} array1 数组1
* @param {Array} array2 数组2
* @returns {Array} 返回数组
*/
declare function arrayDifference(array1: any[], array2: any[]): any[];
/**
* 数组求补集
* @description 数组1 和 数组2 不相同的元素集合
* @param {Array} array1 数组1
* @param {Array} array2 数组2
* @returns {Array} 返回数组
*/
declare function arrayComplement(array1: any[], array2: any[]): any[];
/**
* map转object
* @param {Map} map 参数
* @returns {Object} 返回Object
*/
declare function mapToObject(map: Map<any, any>): Record<any, any>;
/**
* map转json字符串
* @param {Map} map 参数
* @returns {string} 返回Json字符串
*/
declare function mapToJson(map: Map<any, any>): string;
/**
* object转map
* @param {Object} obj 参数
* @returns {Map} 返回Map
*/
declare function objectToMap(obj: Record<any, any>): Map<any, any>;
/**
* json字符串转map
* @param {string} json json字符串
* @returns {Map} 返回Map
*/
declare function jsonToMap(json: string): Map<any, any>;
/**
* json对象转json字符串
* @param {Object} json json对象
* @param {boolean} replacer 是否处理循环引用
* @returns {string} 返回Json字符串
*/
declare function stringifyJson(json: Record<any, any>, replacer?: boolean): string;
/**
* json字符串转json对象
* @param {string} json json字符串
* @returns {Object} 返回Json对象
*/
declare function parseJson(json: string): Record<any, any> | null;
/**
* 浅拷贝数据
* @param {*} source 拷贝的数据
* @returns {*} 返回浅拷贝的数据
*/
declare function clone(source: any): any;
/**
* 深拷贝数据
* @param {*} source 拷贝的数据
* @returns {*} 返回深拷贝的数据
*/
declare function cloneDeep(source: any): any;
/**
* 比较两个对象是否相等
* @description 方法只能对比简单的对象,不能包含function,另外对象的属性顺序不一致也是相等的
* @param {Object} obj1 对象1
* @param {Object} obj2 对象2
* @returns {boolean} 返回true和false
*/
declare function objectEquals(obj1: Record<any, any>, obj2: Record<any, any>): boolean;
/**
* 合并对象
* @param {Object} target 目标对象
* @param {Object[]} source 原对象列表
* @returns {Object} 返回合并后的对象
*/
declare function merge(target: Record<any, any>, ...source: Record<any, any>[]): any;
/**
* 根据字符串属性路径获取目标对象的值
* @example
* let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
* this._getValueByPath(res, 'data.pages.pageSize'); // 这里会输出20
* @param {Object} target 目标对象
* @param {string} path 字符串属性路径
* @returns {*} 返回目标对象的值
*/
declare function getValueByPath(target: Record<any, any>, path?: string): any;
/**
* 根据字符串属性路径设置目标对象的值
* @example
* let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
* this._setValueByPath(res, 'data.pages.pageSize', 30); // 打印res对象会发现pageSize的值改为了30
* @param {Object} target 目标对象
* @param {string} path 字符串属性路径
* @param {*} value 值
* @returns {*} 返回修改过后的目标对象
*/
declare function setValueByPath(target: Record<any, any>, path: string | undefined, value: any): Record<any, any>;
/**
* @module 函数
*/
/**
* 防抖函数
* @description 事件执行后,在延迟时间内如果再次执行,会清空定时器重新延迟执行,举例:用户在输入框进行输入搜索,最终是会获取到最后一次输入,节约请求资源
* @param {Function} fn 目标函数
* @param {number} delay 延迟时间,单位毫秒,默认 1*1000 毫秒
* @param {boolean} immediate 是否立即执行,默认true
* @returns {Function} 返回function()
*/
declare function debounce<T extends (...args: any[]) => any>(fn: T, delay?: number, immediate?: boolean): (...args: Parameters<T>) => ReturnType<T> | void;
/**
* 节流函数
* @description 高频触发时,在指定时间间隔内只执行一次,举例:监听页面滚动,不会频繁触发,只会在固定时间内获取一次
* @param {Function} fn 目标函数
* @param {number} interval 时间间隔,单位毫秒,默认1000毫秒
* @returns {Function} 返回function()
*/
declare function throttle<T extends (...args: any[]) => any>(fn: T, interval?: number): (...args: Parameters<T>) => ReturnType<T> | void;
/**
* 睡眠延迟执行
* @description 需要配合 async/await 来达到延迟效果
* @param {number} delay 延迟时间,单位毫秒,默认1000毫秒
*/
declare function sleep(delay?: number): Promise<unknown>;
/**
日期配置类型
@param format 日期格式字符串,支持的占位符如下:
| 占位符 | 说明 | 示例(2025-01-05 08:05:08 周一) |
|--------|-----------------------|---------------------------------|
| yyyy | 4 位年份 | 2025 |
| yy | 2 位年份 | 25 |
| MM | 2 位月份(补 0) | 01 |
| M | 1 位月份(不补 0) | 1 |
| dd | 2 位日期(补 0) | 05 |
| d | 1 位日期(不补 0) | 5 |
| HH | 24 小时制(2 位,补 0) | 08 |
| H | 24 小时制(1 位,不补 0)| 8 |
| hh | 12 小时制(2 位,补 0) | 08 |
| h | 12 小时制(1 位,不补 0)| 8 |
| mm | 2 位分钟(补 0) | 05 |
| m | 1 位分钟(不补 0) | 5 |
| ss | 2 位秒数(补 0) | 08 |
| s | 1 位秒数(不补 0) | 8 |
| SSS | 3 位毫秒(补 0) | 123 |
| S | 1 位毫秒(不补 0) | 1 |
| E | 周几(迷你名) | 一(zh) / Mon(en) |
| EE | 周几(短名) | 周一(zh) / Mon(en) |
| EEE | 周几(全名) | 星期一(zh) / Monday(en) |
| Q | 季度(迷你名) | 1(zh) / 1(en) |
| QQ | 季度(短名) | Q1(zh) / Q1(en) |
| QQQ | 季度(全名) | 第一季度(zh) / Quarter 1(en)|
| a | 上午 / 下午(小写) | am /pm |
| A | 上午 / 下午(大写) | AM / PM |
| aa | 上午 / 下午(中文) | 上午 / 下午 |
| AA | 上午 / 下午(中文大写) | 上午 / 下午 |
@example
yyyy-MM-dd HH:mm:ss → 2025-01-05 08:05:08
yyyy-M-d h:m:s → 2025-1-5 8:5:8
yyyy-MM-dd EE → 2025-01-05 周一
@param lang 语言,可选值:zh(默认)/ en
*/
interface DateOptions {
format?: string;
lang?: string;
}
/**
* 今天
*@returns {string} 返回日期字符串
*/
declare function today(): string;
/**
* 昨天
* @returns {string} 返回日期字符串
*/
declare function yesterday(): string;
/**
* 明天
*@returns {string} 返回日期字符串
*/
declare function tomorrow(): string;
/**
* 上周(7天前日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function lastWeek(date?: Date): string;
/**
* 下周(7天后日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function nextWeek(date?: Date): string;
/**
* 上个月(30天前日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function lastMonth(date?: Date): string;
/**
* 下个月(30天后日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function nextMonth(date?: Date): string;
/**
* 上一年(365天前日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function lastYear(date?: Date): string;
/**
* 下一年(365天后日期)
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function nextYear(date?: Date): string;
/**
* 是否为上午
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isAM(date?: Date): boolean;
/**
* 是否为下午
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isPM(date?: Date): boolean;
/**
* 是否为今天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isToday(date?: Date): boolean;
/**
* 是否为昨天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isYesterday(date?: Date): boolean;
/**
* 是否为前天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isBeforeYesterday(date?: Date): boolean;
/**
* 是否为明天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isTomorrow(date?: Date): boolean;
/**
* 是否为后天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isAfterTomorrow(date?: Date): boolean;
/**
* 是否为工作日
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isWorkday(date?: Date): boolean;
/**
* 是否为周末(周六和周日)
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isWeekend(date?: Date): boolean;
/**
* 是否为本周第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isFirstDayOfWeek(date?: Date): boolean;
/**
* 是否为本周最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isLastDayOfWeek(date?: Date): boolean;
/**
* 是否为本月第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isFirstDayOfMonth(date?: Date): boolean;
/**
* 是否为本月最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isLastDayOfMonth(date?: Date): boolean;
/**
* 是否为本年第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isFirstDayOfYear(date?: Date): boolean;
/**
* 是否为本年最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isLastDayOfYear(date?: Date): boolean;
/**
* 是否为闰年
* @description 闰年366天,平年365天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isLeapYear(date?: Date): boolean;
/**
* 是否为平年
* @description 闰年366天,平年365天
* @param {Date} date 日期参数,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isCommonYear(date?: Date): boolean;
/**
* 是否在日期之前
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isBefore(startDate: Date, endDate?: Date): boolean;
/**
* 是否在日期之后
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期,默认当前日期
* @returns {boolean} 返回结果
*/
declare function isAfter(startDate: Date, endDate?: Date): boolean;
/**
* 是否在两个日期之间
* @param {Date} date 要比较的日期
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isBetween(date: Date, startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否为同一天
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSame(startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否为同一周
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSameWeek(startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否为同一个月
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSameMonth(startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否为同一年
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSameYear(startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否相同或之前
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSameOrBefore(startDate: Date, endDate: Date): boolean;
/**
* 两个日期是否相同或之后
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {boolean} 返回结果
*/
declare function isSameOrAfter(startDate: Date, endDate: Date): boolean;
/**
* 获得此刻的日期
* @returns {Date} 返回日期
*/
declare function getNow(): Date;
/**
* 获得当前日期字符串
* @param {Date} date 日期参数,默认当前日期
* @param options 配置项 配置项
* @returns {string} 返回日期字符串
*/
declare function getDate(date?: Date, options?: DateOptions): string;
/**
* 获得当前日期时间字符串
* @param {Date} date 日期参数,默认当前日期
* @param options 配置项 配置项
* @returns {string} 返回日期时间字符串
*/
declare function getDateTime(date?: Date, options?: DateOptions): string;
/**
* 获取当前时间戳
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回时间戳
*/
declare function getTimestamp(date?: Date): number;
/**
* 获取当前Unix时间戳
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回Unix时间戳
*/
declare function getUnixTimestamp(date?: Date): number;
/**
* 获得当前日期的对象形式
* @param {Date} date 日期参数,默认当前日期
* @returns {Object} 返回日期的对象形式
*/
declare function getDateObject(date?: Date): {
year: number;
month: number;
date: number;
hours: number;
minutes: number;
seconds: number;
milliseconds: number;
};
/**
* 获得当前日期的数组形式
* @param {Date} date 日期参数,默认当前日期
* @returns {Object} 返回日期的数组形式
*/
declare function getDateArray(date?: Date): number[];
/**
* 获得当前日期是周几
* @param {Date} date 日期参数,默认当前日期
* @param options 配置项
* @returns {number|string} 返回周几,会根据语言返回
*/
declare function getWeek(date?: Date, options?: DateOptions): number | string;
/**
* 获得当前日期是第几季度
* @param {Date} date 日期参数,默认当前日期
* @param options 配置项
* @returns {number|string} 返回第几季度,会根据语言返回
*/
declare function getQuarter(date?: Date, options?: DateOptions): number | string;
/**
* 获得当前日期是所在周的第几天
* @param {Date} date 日期参数,默认当前日期
* @returns {number|string} 返回天数
*/
declare function getDayOfWeek(date?: Date): number | string;
/**
* 获得当前日期是所在月的第几天
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回天数
*/
declare function getDayOfMonth(date?: Date): number;
/**
* 获得当前日期是所在年的第几天
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回天数
*/
declare function getDayOfYear(date?: Date): number;
/**
* 获得当前日期是所在月的第几周
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回周数
*/
declare function getWeekOfMonth(date?: Date): number;
/**
* 获得当前日期是所在年的第几周
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回周数
*/
declare function getWeekOfYear(date?: Date): number;
/**
* 获得当前日期所在的周共几天
* @returns {number} 返回天数
*/
declare function getDaysOfWeek(): number;
/**
* 获得当前日期所在的月共几天
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回天数
*/
declare function getDaysOfMonth(date?: Date): number;
/**
* 获得当前日期所在的年共几天
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回天数
*/
declare function getDaysOfYear(date?: Date): number;
/**
* 获得当前日期是所在月的第几周
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回周数
*/
declare function getWeeksOfMonth(date?: Date): number;
/**
* 获得当前日期是所在年的第几周
* @param {Date} date 日期参数,默认当前日期
* @returns {number} 返回周数
*/
declare function getWeeksOfYear(date?: Date): number;
/**
* 获得当前日期所在周的第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getFirstDateOfWeek(date?: Date): string;
/**
* 获得当前日期所在周的最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getLastDateOfWeek(date?: Date): string;
/**
* 获取当前日期所在周的所有日期
* @param {Date} date 日期参数,默认当前日期
* @returns {string[]} 返回日期数组
*/
declare function getFullDateOfWeek(date?: Date): string[];
/**
* 获得当前日期所在月的第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getFirstDateOfMonth(date?: Date): string;
/**
* 获得当前日期所在月的最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getLastDateOfMonth(date?: Date): string;
/**
* 获取当前日期所在月的所有日期
* @param {Date} date 日期参数,默认当前日期
* @returns {string[]} 返回日期数组
*/
declare function getFullDateOfMonth(date?: Date): string[];
/**
* 获取当前日期所在年的第一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getFirstDateOfYear(date?: Date): string;
/**
* 获取当前日期所在年的最后一天
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getLastDateOfYear(date?: Date): string;
/**
* 获取当前日期所在年的所有日期
* @param {Date} date 日期参数,默认当前日期
* @returns {string} 返回日期字符串
*/
declare function getFullDateOfYear(date?: Date): string[];
/**
* 计算两个日期相差的天数,不满一天为0
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {number} 返回两个日期相差的天数,结果为正数或者负数
*/
declare function getDiffDay(startDate: Date, endDate: Date): number;
/**
* 计算两个日期相差的周数,不满一周为0
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {number} 返回两个日期相差的周数,结果为正数或者负数
*/
declare function getDiffWeek(startDate: Date, endDate: Date): number;
/**
* 计算两个日期相差的月数,不满一月为0
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {number} 返回两个日期相差的月数,结果为正数或者负数
*/
declare function getDiffMonth(startDate: Date, endDate: Date): number;
/**
* 计算两个日期相差的年数,不满一年为0
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {number} 返回两个日期相差的年数,结果为正数或者负数
*/
declare function getDiffYear(startDate: Date, endDate: Date): number;
/**
* 获得两个日期之间的年月日数组
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {Array} 返回年月日数组
*/
declare function getBetweenDates(startDate: Date, endDate: Date): string[];
/**
* 获得两个日期之间的年月数组
* @description 支持:日期字符串,日期对象,时间戳,Unix时间戳
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {Array} 返回年月数组
*/
declare function getBetweenMonths(startDate: Date, endDate: Date): string[];
/**
* 获得两个日期之间的年数组
* @param {Date} startDate 开始日期
* @param {Date} endDate 结束日期
* @returns {Array} 返回年数组
*/
declare function getBetweenYears(startDate: Date, endDate: Date): number[];
/**
* 获得过去时间的字符串显示
* @description 例如:刚刚,1分钟前,1小时前等
* @param {Date} date 日期参数
* @param options 配置项
* @returns {string} 返回字符串
*/
declare function getPastTime(date: Date, options?: DateOptions): string;
/**
* 获得剩余时间的字符串显示
* @description 例如:1天10小时20分钟30秒
* @param {Date} date 日期参数
* @param options 配置项
* @returns {string} 返回字符串
*/
declare function getOverTime(date: Date, options?: DateOptions): string;
/**
* 通过日期获得年龄
* @param {Date} date 日期参数
* @returns {number} 返回周岁年龄
*/
declare function getAge(date: Date): number;
/**
* 通过日期获得星座
* @param {Date} date 日期参数
* @param options 配置项
* @returns {string} 返回星座
*/
declare function getZodiac(date: Date, options?: DateOptions): string;
/**
* 通过日期获得生肖
* @param {Date} date 日期参数
* @param options 配置项
* @returns {string} 返回生肖
*/
declare function getChineseZodiac(date: Date, options?: DateOptions): string;
/**
* 日期加减年
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addYear(date?: Date, num?: number): Date;
/**
* 日期加减月
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addMonth(date?: Date, num?: number): Date;
/**
* 日期加减天
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addDate(date?: Date, num?: number): Date;
/**
* 日期加减小时
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addHours(date?: Date, num?: number): Date;
/**
* 日期加减分钟
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addMinutes(date?: Date, num?: number): Date;
/**
* 日期加减秒
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addSeconds(date?: Date, num?: number): Date;
/**
* 日期加减毫秒
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+100
* @returns {Date} 返回加减后的日期
*/
declare function addMillisecond(date?: Date, num?: number): Date;
/**
* 日期加减周
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addWeek(date?: Date, num?: number): Date;
/**
* 日期加减季度
* @param {Date} date 日期参数,默认当前日期
* @param {number} num 加减数量,用正数和负数表示;默认+1
* @returns {Date} 返回加减后的日期
*/
declare function addQuarter(date?: Date, num?: number): Date;
/**
* UTC 日期对象转本地时区日期对象
* @description 将 UTC 时间的 Date 对象转换为本地时间的 Date 对象(时间戳不变,仅调整时区偏移)
* @param {Date} date UTC 日期对象,默认当前 UTC 时间
* @returns {Date} 本地时区日期对象(时间戳 = UTC时间戳 + 时区偏移毫秒数)
* @example
* // UTC时间:2025-01-26 00:00:00
* const utcDate = new Date('2025-01-26T00:00:00Z');
* const localDate = fromDateUTC(utcDate);
* console.log(toDateString(localDate)); // 2025-01-26 08:00:00(北京本地时间)
*/
declare function fromDateUTC(date?: Date): Date;
/**
* 本地时区日期转 UTC 日期对象
* @description 将本地时间的 Date 对象转换为 UTC 时间的 Date 对象(时间戳不变,仅调整时区偏移)
* @param {Date} date 本地日期对象,默认当前本地时间
* @returns {Date} UTC 日期对象(时间戳 = 本地时间戳 - 时区偏移毫秒数)
* @example
* // 北京本地时间:2025-01-26 08:00:00(东8区)
* const localDate = new Date('2025-01-26 08:00:00');
* const utcDate = toDateUTC(localDate);
* console.log(utcDate.toISOString()); // 2025-01-26T00:00:00.000Z(UTC时间)
*/
declare function toDateUTC(date?: Date): Date;
/**
* 格式化日期为 UTC 字符串(符合 ISO 8601 标准)
* @description 直接输出 UTC 时间的字符串,无需手动转换时区
* @param {Date} date 本地日期对象,默认当前本地时间
* @param {DateOptions} options 格式化配置,默认 yyyy-MM-dd HH:mm:ss
* @returns {string} UTC 日期字符串
* @example
* const localDate = new Date('2025-01-26 08:00:00');
* console.log(toUTCString(localDate)); // 2025-01-26 00:00:00
*/
declare function toDateUTCString(date?: Date, options?: DateOptions): string;
/**
* 日期字符串转为日期对象
* @description 支持日期字符串,时间戳,Unix时间戳
* @param {string|number} value 日期参数
* @returns {Date} 返回日期对象
*/
declare function toDate(value: string | number): Date;
/**
* 日期对象转为日期字符串
* @description 支持日期字符串,日期对象,时间戳,unix时间戳
* @param {Date} date 日期参数
* @param options 配置项
* @returns {string} 返回日期字符串
*/
declare function toDateString(date: Date, options?: DateOptions): string;
/**
* 两个数字相加
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function add(arg1: string | number, arg2: string | number): number;
/**
* 两个数字相减
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function subtract(arg1: string | number, arg2: string | number): number;
/**
* 两个数字相乘
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function multiply(arg1: string | number, arg2: string | number): number;
/**
* 两个数字相除
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function divide(arg1: string | number, arg2: string | number): number;
/**
* 两个数字取模
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function modulo(arg1: string | number, arg2: string | number): number;
/**
* 最大公约数
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function gcd(arg1: string | number, arg2: string | number): number;
/**
* 最小公倍数
* @param {string|number} arg1 第一个数字
* @param {string|number} arg2 第二个数字
* @returns {number} 返回计算后的数字
*/
declare function scm(arg1: string | number, arg2: string | number): number;
/**
* 强制保留小数位数
* @description 默认保留两位小数,解决原生的toFixed()会五舍六入的问题
* @param {string|number} num 数字
* @param {number} decimals 保留小数的位数,默认2位
* @param {number} mode 保留小数模式
* @returns {string} 返回保留后的数字字符串
*/
declare function toFixed(num: string | number, decimals?: number, mode?: number): string;
/**
* 尽可能保留小数位数
* @param {string|number} num 数字
* @param {number} decimals 保留小数的位数,默认2位
* @param {number} mode 保留小数模式
* @returns {number} 返回保留后的数字
*/
declare function toDecimal(num: string | number, decimals?: number, mode?: number): number;
/**
* 正则校验的方法
* @description 类型为REGEXP对应的正则
* @param {string} value 校验的参数
* @param {RegExp} regex 使用的REGEXP中的正则
* @returns {boolean} 返回校验的结果
*/
declare function regexpTest(value: string, regex: RegExp): boolean;
/**
* 是中文
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isChinese(value: string): boolean;
/**
* 是英文
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isEnglish(value: string): boolean;
/**
* 是外链
* @description 支持http,https,mail,tel电话
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isExternal(value: string): boolean;
/**
* 是小写字母
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isLowerCase(value: string): boolean;
/**
* 是大写字母
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isUpperCase(value: string): boolean;
/**
* 是11位手机号码
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isMobile(value: string): boolean;
/**
* 是邮箱
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isEmail(value: string): boolean;
/**
* 是身份证号码(15-18位)
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isIdCard(value: string): boolean;
/**
* 是url链接
* @param {string} value 校验的参数
* @returns {boolean} 返回校验的结果
*/
declare function isUrl(value: string): boolean;
/**
* @module 随机数
*/
/**
* 生成指定大小的随机整数
* @description n和m参数表示最小和最大范围值,默认0-9之间范围
* @param {number} min 随机数的最小值,默认 0
* @param {number} max 随机数的最大值,默认 9
* @returns {number} 返回指定大小的随机整数
*/
declare function getRandom(min?: number, max?: number): number;
/**
* 生成固定位数的随机整数
* @description 默认是1,代表生成0-9之间一位,如果是2,则生成10-99之间两位,以此类推
* @param {number} len 固定的位数
* @returns {number} 返回固定位数的随机数
*/
declare function getRandomDigit(len?: number): number;
/**
* 格式化文件大小自动转为 B,KB,MB,GB
* @param {number} size 文件的大小,单位byte字节
* @returns {string} 返回格式化后的字符串
*/
declare function formatFileSize(size: number): string;
/**
* 获得文件名称
* @param {string} fileName 文件的全名称,例如:测试图片.jpg
* @returns {string} 返回文件的名称
*/
declare function getFileName(fileName: string): string | undefined;
/**
* 获得文件后缀名
* @param {string} value 文件地址路径或者文件全名称,例如:http://xxx.com/mytest.jpg,测试图片.jpg
* @returns {string} 返回文件后缀名
*/
declare function getFileSuffix(value: string): string | undefined;
/**
* file转blob
* @param {File} file file文件
* @returns {Promise} 返回Promise的blob
*/
declare function fileToBlob(file: File): Promise<Blob>;
/**
* file转base64
* @param {File} file file文件
* @returns {Promise} 返回Promise的base64
*/
declare function fileToBase64(file: File): Promise<string>;
/**
* file转url
* @description 适用于本地上传图片并预览,需要注意 URL.revokeObjectURL(file) 内存释放
* @param {File} file file文件
* @returns {Promise} 返回Promise的url
*/
declare function fileToUrl(file: File): Promise<string>;
/**
* url赚file
* @param {string} url url地址
* @returns {Promise} 返回Promise的file
*/
declare function urlToFile(url: string): Promise<File>;
/**
* blob转file
* @param {Blob} blob blob数据
* @param {string} fileName 文件名称,默认以时间戳命名
* @returns {Promise} 返回Promise的file
*/
declare function blobToFile(blob: Blob, fileName?: string): Promise<File>;
/**
* blob转文本
* @param {Blob} blob blob数据
* @returns {Promise} 返回Promise的文本
*/
declare function blobToText(blob: Blob): Promise<string>;
/**
* blob转base64
* @param {Blob} blob blob数据
* @returns {Promise} 返回Promise的base64
*/
declare function blobToBase64(blob: Blob): Promise<string>;
/**
* base64转file
* @param {string} base64 base64数据
* @param {string} fileName 文件名称,默认以时间戳命名
* @returns {Promise} 返回Promise的file
*/
declare function base64ToFile(base64: string, fileName?: string): Promise<File>;
/**
* base64转成blob
* @param {string} base64 base64数据
* @returns {Promise} 返回Promise的blob
*/
declare function base64ToBlob(base64: string): Promise<Blob>;
/**
* 图片url转base64
* @param {string} imgUrl 图片url地址
* @returns {Promise} 返回Promise的base64
*/
declare function urlToBase64(imgUrl: string): Promise<string>;
/**
* 下载blob格式的文件
* @param {Blob} blob blob数据
* @param {string} fileName 下载的文件名,不写后缀名则默认为原文件类型
*/
declare function downloadBlobFile(blob: Blob, fileName: string): void;
/**
* 通过文件url地址下载
* @param {string} fileUrl url文件地址
* @param {string} fileName 下载的文件名,不写后缀名则默认为原文件类型
*/
declare function downloadFileUrl(fileUrl: string, fileName: string): void;
/**
* @module 颜色
*/
/**
* rgb颜色转hex
* @param {string} rgb rgb颜色字符串
* @returns {string} 返回生成的hex颜色
*/
declare function rgbToHex(rgb: string): string;
/**
* rgba颜色转hex
* @param {string} rgba rgba颜色字符串
* @returns {string} 返回生成的hex颜色
*/
declare function rgbaToHex(rgba: string): string;
/**
* rgba颜色转hsl
* @param {string} rgba rgb颜色字符串
* @returns {string} 返回生成的hsl颜色
*/
declare function rgbaToHsl(rgba: string): string;
/**
* hex颜色转rgb
* @param {string} hex hex颜色字符串
* @returns {string} 返回生成的rgb颜色
*/
declare function hexToRgb(hex: string): string;
/**
* hex颜色转rgba
* @param {string} hex hex颜色字符串
* @param {number} opacity 透明度
* @returns {string} 返回生成的rgba颜色
*/
declare function hexToRgba(hex: string, opacity?: number): string;
/**
* hex颜色转hsl
* @param {string} hex hex颜色字符串
* @returns {string} 返回生成的hsl颜色
*/
declare function hexToHsl(hex: string): string;
/**
* 随机生成hex颜色
* @returns {string} 返回生成的十六进制颜色
*/
declare function getDrawHex(): string;
/**
* 随机生成rgb颜色
* @returns {string} 返回生成的 rgb 颜色
*/
declare function getDrawRgb(): string;
/**
* 随机生成rgba颜色
* @returns {string} 返回生成的 rgba 颜色
*/
declare function getDrawRgba(): string;
/**
* @module 校验
*/
/**
* 判断是整数
* @param {*} value 参数
* @returns {boolean} result 返回结果
*/
declare function isInteger(value: any): boolean;
/**
* 判断是小数
* @param {*} value 参数
* @returns {boolean} result 返回结果
*/
declare function isDecimal(value: any): boolean;
/**
* 判断类型是数字 Number
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isNumber(value: any): boolean;
/**
* 判断类型是字符串 String
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isString(value: any): boolean;
/**
* 判断类型是数组 Array
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isArray(value: any): boolean;
/**
* 判断类型是对象 Object
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isObject(value: any): boolean;
/**
* 判断类型是布尔 boolean
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isBoolean(value: any): boolean;
/**
* 判断类型是日期 Date
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isDate(value: any): boolean;
/**
* 判断类型是函数 Function
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isFunction(value: any): boolean;
/**
* 判断类型是函数字符串 FunctionString
* @description 支持普通函数,异步函数,箭头函数
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isFunctionString(value: any): boolean;
/**
* 判断类型是异步函数 AsyncFunction
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isAsyncFunction(value: any): boolean;
/**
* 判断类型是 Symbol
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isSymbol(value: any): boolean;
/**
* 判断类型是正则 RegExp
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isRegExp(value: any): boolean;
/**
* 判断类型是错误 Error
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isError(value: any): boolean;
/**
* 判断类型是 Promise
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isPromise(value: any): boolean;
/**
*判断类型是 Map
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isMap(value: any): boolean;
/**
* 判断类型是 WeakMap
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isWeakMap(value: any): boolean;
/**
* 判断类型是 Set
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isSet(value: any): boolean;
/**
* 判断类型是 WeakSet
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isWeakSet(value: any): boolean;
/**
* 判断类型是 BigInt
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isBigInt(value: any): boolean;
/**
* 判断类型是 Json
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isJson(value: any): boolean;
/**
* 判断值为真
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isTrue(value: any): boolean;
/**
* 判断值为假
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isFalse(value: any): boolean;
/**
* 判断非数字
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isNaN(value: any): boolean;
/**
* 判断是数字
* @description 等同于isNumber()
* @param {*} value 参数
* @returns {boolean} 返回结果
*/
declare function isNotNaN(value: any): boolean;
/**
* 判断对象为空
* @description 判断值是否为空,如果对象初始化了值则不为空
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isNull(value: any): boolean;
/**
* 判断对象不为空
* @description 判断值是否为空,如果对象初始化了值则不为空
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isNotNull(value: any): boolean;
/**
* 判断值为空
* @description 判断是否是有意义不为空的值,如果值是{},[]空的数据则为空
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isEmpty(value: any): boolean;
/**
* 判断值不为空
* @description 判断是否是有意义不为空的值,如果值是{},[]空的数据则为空
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isNotEmpty(value: any): boolean;
/**
* 判断值是空白的
* @description 同时会校验空值,空对象,以及空白符号
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isBlank(value: any): boolean;
/**
* 判断值不是空白的
* @description 同时会校验空值,空对象,以及空白符号
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isNotBlank(value: any): boolean;
/**
* 判断值是undefined
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isUndefined(value: any): boolean;
/**
* 判断值不是undefined
* @param {*} value 校验的参数
* @returns {boolean} 返回结果
*/
declare function isNotUndefined(value: any): boolean;
/**
* 判断两个值是否相等
* @param {*} value1 参数1
* @param {*} value2 参数2
* @returns {boolean} 返回结果
*/
declare function equals(value1: any, value2: any): boolean;
/**
* 判断两个值是否相等(忽略大小写)
* @param {*} value1 参数1
* @param {*} value2 参数2
* @returns {boolean} 返回结果
*/
declare function equalsIgnoreCase(value1: any, value2: any): boolean;
/**
* 深度对比数据
* @description 可以对比任意数据,对象、数组、日期等也可深度对比,对象不区分先后顺序
* @param {*} x 数据1
* @param {*} args 数据2
* @returns {boolean} 返回对比结果
*/
declare function deepCompare(x: any, ...args: any[]): boolean;
/**
* 根据keycode获得键名
* @param {number} keycode 键值
* @returns {string} 返回键名
*/
declare function getKeyName(keycode: number): string;
/**
* 根据keyname获得键值
* @param {string} keyname
* @returns {string} 返回键值
*/
declare function getKeyCode(keyname: string): string | undefined;
/**
* @module 生成Id
*/
/**
* 生成UUID
* @param {Number} len 生成的长度,默认32位
* @param {Number} radix 进制数,默认16进制
* @example
* getUUID() // 输出:0a559343dbbf0e7e6c1de90163e7aa0a
* @returns {String} 返回字符串
*/
declare function getUUID(len?: number, radix?: number): string;
/**
* 生成GUID
* @example
* getGUID() // 输出:275ec770-0853-6767-4875-7b270220ce9c
* @returns {String} 返回字符串
*/
declare function getGUID(): string;
/**
* Base64编码
* @param str 待编码的UTF8字符串
* @param urlSafe 是否生成URL安全的Base64(默认false)
* @returns Base64字符串
*/
declare function base64Encode(str: string, urlSafe?: boolean): string;
/**
* Base64解码
* @param str 待解码的Base64字符串
* @returns 解码后的UTF8字符串
*/
declare function base64Decode(str: string): string;
/**
* URL安全Base64编码
* @param str 待编码的UTF8字符串
* @returns URL安全的Base64字符串
*/
declare function base64EncodeURI(str: string): string;
/**
* URL安全Base64解码
* @param str 待解码的URL安全Base64字符串
* @returns 解码后的UTF8字符串
*/
declare function base64DecodeURI(str: string): string;
/**
* Uint8Array转Base64字符串
* @param uint8Array 待编码的字节数组
* @param urlSafe 是否生成URL安全的Base64(默认false)
* @returns Base64字符串
*/
declare function base64FromUint8Array(uint8Array: Uint8Array, urlSafe?: boolean): string;
/**
* Base64字符串转Uint8Array
* @param base64Str 待解码的Base64字符串
* @param urlSafe 是否为URL安全的Base64(默认false)
* @returns 解码后的字节数组
*/
declare function base64ToUint8Array(base64Str: string, urlSafe?: boolean): Uint8Array;
/**
* 十六进制字符串转Base64字符串
* @param hexStr 待编码的十六进制字符串
* @param urlSafe 是否生成URL安全的Base64(默认false)
* @returns Base64字符串
*/
declare function base64FromHex(hexStr: string, urlSafe?: boolean): string;
/**
* Base64字符串转十六进制字符串
* @param base64Str 待解码的Base64字符串
* @param urlSafe 是否为URL安全的Base64(默认false)
* @returns 解码后的十六进制字符串
*/
declare function base64ToHex(base64Str: string, urlSafe?: boolean): string;
/**
* md5 加密
* @param {string} str 字符串
* @returns {string} 返回加密后的十六进制字符串
*/
declare function md5(str: string): string;
/**
* md5 加密
* @param {string} str 字符串
* @returns {*} 返回加密后的二进制原始值
*/
declare function md5Raw(str: string): any;
/**
* md5_hmac 加密
* @param {string} str 字符串
* @param {string} key 秘钥
* @returns {string} 返回加密后的十六进制字符串
*/
declare function md5Hmac(str: string, key: string): string;
/**
* md5_hmac 加密
* @param {string} str 字符串
* @param {string} key 秘钥
* @returns {string} 返回加密后的二进制原始值
*/
declare function md5HmacRaw(str: string, key: string): any;
/**
* sha256 加密
* @param {string} str 字符串
* @returns {string} 返回加密后的字符串
*/
declare function sha256(str: string): string;
/**
* sha256_raw 加密
* @param {string} str 字符串
* @returns {string} 返回加密后的原始值
*/
declare function sha256Raw(str: strin