UNPKG

@fe6/shared

Version:

水滴共享函数集

1,190 lines (1,120 loc) 23.8 kB
/** * 将两个数字相加 * * @since 0.1.0 * @category Math * @param {unknown} oneValue 运算中的第一个数字 * @param {unknown} twoValue 运算中的第二个数字 * @returns {number} 返回总和 * @example * * add() * // => 0 * * add(1, 2) * // => 3 * * add(1) * // => 2 */ export declare const add: Function; /** * 小写连接符转换成驼峰 * * * @since 0.1.0 * @category Format * @param {string} word 处理的单词字符串 * @param {string} [separator] 连接符,默认是 - * @returns {string} 返回格式化之后的单词 * @example * * camelize('water-isVery-good') * // => 'waterIsVeryGood' * * camelize('water+isVery+good', '+') * // => 'waterIsVeryGood' * * camelize('水滴') * // => '' * * camelize('12222.22') * // => '' * * camelize('aaa') * // => '' */ export declare const camelize: (word?: unknown, separator?: string) => string; /** * 克隆 * * * @format * @since 0.1.0 * @category Clone * @param {*} val 要复制的值。 * @returns {any} 返回结果 * @example * * clone([1,2,3,4]) * // [1,2,3,4] * * clone({a: 1, b: 2}) * // {a: 1, b: 2} * * clone(111) * // 111 */ export declare const clone: (val: any) => any; /** * 计算的基础 * * * @since 0.1.0 * @category Number * @param {function} operator 执行操作的方法。 * @param {number} [defaultValue] 参数默认值 * @returns {Function} 返回新的数学运算函数。 * @example * * count(augend, addend) => augend + addend, 0)(1, 2) * // => 3 * * count(augend, addend) => augend + addend, 0)(1) * // => 2 * * count(augend, addend) => augend + addend, 7)() * // => 7 */ export declare const count: (operator: Function, defaultValue?: number) => Function; /** * 创建 Storage * * * @since 0.4.0 * @category Storage * @param {string} [prefixKey] 前缀 * @param {string} [storage] 指定 storage 类型 * @returns {WebStorage} 返回 WebStorage 对象 * @example * * createStorage('prefixKey') * * reCamelize('prefixKey', sessionStorage) * // => /+(\w)/g * */ export declare const createStorage: ({ prefixKey, storage, }?: CreateStorageParams) => { storage: Storage; prefixKey?: string | undefined; /** * 获取 Storage 存储的 key * * * @since 0.4.0 * @category Storage * @param {string} [key] key * @returns {string} 返回 存储的 key * @example * * getKey('prefixKey') * */ getKey(key: string): string; /** * 设置 Storage * * * @since 0.4.0 * @category Storage * @param {string} key key * @param {string} value value * @param {number} [expire] 过期时间,单位 秒 s * @returns {void} void * @example * * set('prefixKey', 123) * set('prefixKey', 123, 1000) * */ set(key: string, value: any, exp?: unknown): void; /** * 获取 Storage * 过期了自动删除 * * @since 0.4.0 * @category Storage * @param {string} key key * @param {string} def 不存在 key 的默认返回 * @returns {void} void * @example * * get('prefixKey', 123) * get('prefixKey', 123) * */ get(key: string, def?: any): any; /** * 删除 key 的 Storage * * @since 0.4.0 * @category Storage * @param {string} key key * @param {string} def 不存在 key 的默认返回 * @returns {void} void * @example * * remove('prefixKey') * */ remove(key: string): void; /** * Delete all caches of this instance */ /** * 删除 所有 的 Storage * * @since 0.4.0 * @category Storage * @returns {void} void * @example * * clear() * */ clear(): void; }; export declare interface CreateStorageParams { storage?: Storage; prefixKey?: string; } /** * 深度合并 * * * @since 0.7.0 * @category Object * @param {*} src 元对象 * @param {*} target 目标对象 * @returns {T} 返回新对象 * @example * * deepMerge({ name: 'lee' }, { name: 'foo' }) * // => { name: 'foo' } */ export declare function deepMerge<T = any>(src?: any, target?: any): T; export declare const DEFAULT_CACHE_TIME: number; /** * 将两个数字相除 * * @since 0.1.0 * @category Math * @param {unknown} oneValue 运算中的第一个数字 * @param {unknown} twoValue 运算中的第二个数字 * @returns {number} 返回总和 * @example * * divide() * // => 1 * * divide(1, 2) * // => 0.5 * * divide(3) * // => 1 */ export declare const divide: Function; /** * 文件字节大小的转换 * * * @since 0.1.0 * @category Format * @param {number} num 要转换的大小 * @returns {function} 返回带单位的大小 * @example * * fileSize(1111) * // => {"size": 1.08, "unit": "KB"} * * fileSize(0) * // => {size: 0, unit: 'bytes'} */ export declare const fileSize: (num?: number | undefined) => { size: number; unit: string; }; /** * 首字母大写 * * * @since 0.1.0 * @category Format * @param {string} word 处理的单词字符串 * @returns {string} 返回格式化之后的单词 * @example * * firstCapitalize(12222.22) * // => '' * * firstCapitalize('12222.22') * // => '' * * firstCapitalize('aaa') * // => 'Aaa' * * firstCapitalize('水滴aaa') * // => '水滴aaa' * * firstCapitalize('aaa水滴') * // => 'Aaa水滴' */ export declare const firstCapitalize: (word?: unknown) => string; /** * 获取中英文字符串,中文占两个长度 * * @since 0.9.0 * @category Math * @param {unknown} oneValue 运算中的第一个数字 * @param {unknown} twoValue 运算中的第二个数字 * @returns {number} 返回总和 * @example * * getStrLength() * // => 0 * * getStrLength('水滴', '22') * // => 4 * * getStrLength('water') * // => 5 */ export declare const getStrLength: (str?: unknown, replaceValue?: string) => number; /** * 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。 * * * @since 0.1.0 * @category Object * @param {*} item 目标对象 * @param {string} attr 要检测的属性 * @returns {boolean} 用来判断某个对象是否含有指定的属性的布尔值 * @example * * hasOwn({ name: 'lee' }, 'name') * // => true * * hasOwn({ name: 'lee' }, 'age') * // => false */ export declare const hasOwn: (item: unknown, attr?: string | undefined) => boolean; /** * 驼峰转换成小写连接符 * * * @since 0.1.0 * @category Format * @param {string} word 处理的单词字符串 * @param {string} [separator] 连接符,默认是 - * @returns {string} 返回格式化之后的单词 * @example * * hyphenate('111F') * // => '100-f' * * hyphenate('WaterIsVeryGood', '+') * // => 'water+is+very+good' * * hyphenate('水滴') * // => '' * * hyphenate('12222.22') * // => '' * * hyphenate('aaa') * // => '' */ export declare const hyphenate: (word?: unknown, separator?: string) => string; /** * 是否是负整数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * inRange(3, 2, 4) * // => true * * inRange(4, 8) * // => true * * inRange(4, 2) * // => false * * inRange(2, 2) * // => false * * inRange(1.2, 2) * // => true * * inRange(5.2, 4) * // => false * * inRange(-3, -2, -6) * // => true */ export declare const inRange: (val?: unknown, start?: unknown, end?: unknown) => boolean; /** * 是否是 Arguments * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isArguments('value') * // => false * * isArguments(123) * // => true */ export declare const isArguments: (val?: unknown) => boolean; /** * 是否是数组 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isArray([1]) * // => true * * isArray(123) * // => false */ export declare const isArray: (val?: unknown) => boolean; /** * 是否是布尔值 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isBoolean(true) * // => true * * isBoolean(123) * // => false */ export declare const isBoolean: (val?: unknown) => boolean; /** * 是否是浏览器端 * * * @format * @since 0.1.0 * @category Device * @returns {boolean} 返回结果 * @example * * isClient() * // true */ export declare const isClient: () => boolean; /** * 是否是 Date 对象 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isDate(new Date()) * // => true * * isDate(123) * // => false */ export declare const isDate: (val?: unknown) => boolean; /** * 是否是空对象,集合,映射或者set * 判断的依据是除非是有枚举属性的对象,length 大于 0 的 arguments object , array , string 。 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isEmpty(null); * // => true * * isEmpty(true); * // => true * * isEmpty(1); * // => true * * isEmpty([1, 2, 3]); * // => false * * isEmpty({ 'a': 1 }); * // => false */ export declare const isEmpty: (val?: unknown) => boolean; /** * 是否是小数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isFloat(100) * // => true * * isFloat(-12) * // => false */ export declare const isFloat: (val?: unknown) => boolean; /** * 是否是函数 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isSymbol(Function) * // => true * * isSymbol(123) * // => false */ export declare const isFunction: (val?: unknown) => boolean; /** * 是否是整数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isInteger(-100) * // => true * * isInteger(100) * // => true * * isInteger(12.3) * // => false * * isInteger(-12.3) * // => false */ export declare const isInteger: (val?: any) => boolean; /** * 是否是 Map 对象 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isMap(new Map()) * // => true * * isMap(123) * // => false */ export declare const isMap: (val?: unknown) => boolean; /** * 是否是负数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isMinus(-100) * // => true * * isMinus(-100.11) * // => true * * isMinus(123) * // => false */ export declare const isMinus: (val?: unknown) => boolean; /** * 是否是负整数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isMinusInteger(-100) * // => true * * isMinusInteger(12) * // => false */ export declare const isMinusInteger: (val?: unknown) => boolean; /** * 是否是 NaN * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isNaN('f100') * // => true * * isNaN(123) * // => false */ declare const isNaN_2: (val?: unknown) => boolean; export { isNaN_2 as isNaN } /** * 是否是 null * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isNull(null) * // => true * * isNull(void 0) * // => false */ export declare const isNull: (val?: unknown) => boolean; /** * 是否是数字 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isNumber('value') * // => false * * isNumber(123) * // => true */ export declare const isNumber: (val?: unknown) => boolean; /** * 是否是普通对象 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isPlainObject({}) * // => true * * isPlainObject(123) * // => false */ export declare const isPlainObject: (val?: unknown) => boolean; /** * 是否是正整数 * * * @since 0.1.0 * @category Number * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isPlusInteger(100) * // => true * * isPlusInteger(-12) * // => false */ export declare const isPlusInteger: (val?: unknown) => boolean; /** * 是否是 promise * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isPromise(new Promise(function(a) {a()});) * // => true * * isPromise(123) * // => false */ export declare const isPromise: (val?: unknown) => boolean; /** * 检查 'val' 是否可能是原型对象。 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isPrototype({a: 'as'}) * // => true * * isPrototype(12) * // => false */ export declare const isPrototype: (val?: unknown) => boolean; /** * 是否是 Set 对象 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isSet(new Set()) * // => true * * isSet(123) * // => false */ export declare const isSet: (val?: unknown) => boolean; /** * 是否是字符串 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isString('value') * // => true * * isString(123) * // => false */ export declare const isString: (val?: unknown) => boolean; /** * 是否是 symbol * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isSymbol(Symbol()) * // => true * * isSymbol(123) * // => false */ export declare const isSymbol: (val?: unknown) => boolean; /** * 是否是 undefined * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isUndefined(undefined) * // => true * * isUndefined(123) * // => false */ export declare const isUndefined: (val?: unknown) => boolean; /** * 是否是地址 * * * * @since 0.5.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isUrl('http://www.water.com'); * // => true * * isUrl('https://www.water.com'); * // => true * * isUrl('https://www.water.com?good=true'); * // => true * * isUrl(null); * // => false * * isUrl(false); * // => false * * isUrl(1); * // => false * * isUrl([1, 2, 3]); * // => false * * isUrl({ 'a': 1 }); * // => false */ export declare function isUrl(path: unknown): boolean; /** * 是否是 WeakSet 对象 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {boolean} 如果是返回 true ,否则返回 false * @example * * isWeakSet(new WeakSet()) * // => true * * isWeakSet(123) * // => false */ export declare const isWeakSet: (val?: unknown) => boolean; export declare const enum JS_TYPES { ARGUMENTS = "Arguments", NUMBER = "Number", STRING = "String", BOOLEAN = "Boolean", UNDEFINED = "Undefined", NULL = "Null", FUNCTION = "Function", SYMBOL = "Symbol", ARRAY = "Array", OBJECT = "Object", PROMISE = "Promise", SET = "Set", WEAKSET = "WeakSet", MAP = "Map", DATE = "Date" } export declare const keys: { (o: object): string[]; (o: {}): string[]; }; /** * 获取类型简便方法 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {string} 字符串, 如 Number * @example * * like('value') * // => String * * like(123) * // => Number */ export declare const like: (val?: unknown) => string; /** * 金额格式化 * 必须得符合金钱的验证 * * @since 0.1.0 * @category Format * @param {string|number} money 金额 * @param {boolean} [reverse] 是否反转, 如果存在并且为 true ',' 取消 ,的添加,否则是添加 ',' * @returns {string} 返回格式化之后的金额 * @example * * money(12222.22) * // => '12,222.22' * * money('12222.22') * // => '12,222.22' * * money('aaa') * // => '' * * money('12,222.22', true) * // => '12222.22' * * money('12,222.22') * // => '12222.22' */ export declare const money: (coin?: string | number, reverse?: boolean | undefined) => string; /** * 将两个数字相乘 * * @since 0.1.0 * @category Math * @param {unknown} oneValue 运算中的第一个数字 * @param {unknown} twoValue 运算中的第二个数字 * @returns {number} 返回总和 * @example * * multiply() * // => 1 * * multiply(1, 2) * // => 2 * * multiply(3) * // => 9 */ export declare const multiply: Function; /** * 对象转化为get请求的链接参数 * * * @since 0.3.0 * @category Object * @param {*} item 目标对象 * @param {string} [baseUrl] 基本链接 * @returns {string} 格式化好的字符串 * @example * * objectToQuery({ name: 'www.baidu.com' }, 'www.water.com') * // => www.baidu.com?name=lee * * objectToQuery({a: '3', b: '4'}) * // => a=3&b=4 */ export declare const objectToQuery: (item: unknown, baseUrl?: string | undefined) => string; /** * 对象转字符串方法 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {function} 返回方法 * @example * * objectToString.call('value') * // => [object String] * * objectToString.call(123) * // => [object Number] */ export declare const objectToString: () => string; /** * 手机号脱敏 * * * @since 0.1.0 * @category Format * @param {string|number} phone 手机号 * @returns {string} 返回脱敏之后的手机号 * @example * * phone(13810902078) * // => '138***2078' * * phone('13810902078') * // => '138***2078' * * phone('aaa') * // => '' */ export declare const phone: (codePhone?: string | number) => string; /** * 获取一段区间内的随机数 * * * @since 0.1.0 * @category Number * @param {number} minValue 最小区间 * @param {number} minValue 最大区间 * @param {boolean} isFloat 是否是小数 * @returns {number} 返回在最大最小区间内包括最大最小区间的整数 * @example * * randomNumber(-100, 1) * // 生成 -100 到 1 之间的整数 * // => 1 * * randomNumber(12, 22) * // 生成 12 到 22 之间的整数 * // => 12 * * randomNumber(1, 3) * // 生成 1 到 3 之间的整数 * // => 2 * * randomNumber(1.1, 3.2) * // 生成 1.1 到 3.2 之间的小数 * // => 2.2 * * randomNumber(1, 3.2) * // 生成 1 到 3.2 之间的小数 * // => 2.2 * * randomNumber(1.1, 3) * // 生成 1 到 3 之间的小数 * // => 2.2 * * randomNumber(1, 3, true) * // 生成 1 到 3 之间的小数 * // => 2.2 */ export declare const randomNumber: (minValue: unknown, maxValue: unknown, isFloating?: boolean | undefined) => number; /** * 获取 字母横线( 或其他 )转驼峰的正则 * * * @since 0.1.0 * @category Reg * @param {string} [separator] 连接符,默认是 - * @returns {RegExp} 返回正则 * @example * * reCamelize() * // => /-(\w)/g; * * reCamelize('+') * // => /+(\w)/g * */ export declare const reCamelize: (separator?: unknown) => RegExp; export declare const reEmail: RegExp; export declare const reHyphenate: RegExp; export declare const reLandlineAll: RegExp; export declare const reLandlineAreaCode: RegExp; export declare const reLandlineTel: RegExp; export declare const reMoneyPrettify: RegExp; export declare const reOnlyCn: RegExp; export declare const reOnlyEnOrNum: RegExp; export declare const rePhone: RegExp; export declare const rePhone344: RegExp; export declare const rePlusNumber: RegExp; export declare const reUrl: RegExp; export declare const reUrlInString: RegExp; /** * 获取 url 问号后面的某一个值 * @static * @since 1.0.7 * @returns {string} Returns '' * @example * * url http://underline.com?underline=lee * var shallow = _.searchUrl('aaa'); * console.log(shallow); // lee * * url http://underline.com?underline=lee * var shallow = _.searchUrl('em'); * console.log(shallow); // '' * * url http://underline.com * var shallow = _.searchUrl('em'); * console.log(shallow); // '' */ export declare function searchUrl(name: String): string; export declare const enum SIZE_UNIT { KB = "KB", MB = "MB", GB = "GB", TB = "TB" } /** * 将两个数字相减 * * @since 0.1.0 * @category Math * @param {unknown} oneValue 运算中的第一个数字 * @param {unknown} twoValue 运算中的第二个数字 * @returns {number} 返回总和 * @example * * subtract() * // => 0 * * subtract(6, 4) * // => 2 * * subtract(1, 2) * // => -1 * * subtract(1) * // => 0 */ export declare const subtract: Function; /** * 获取类型通用方法 * * * @since 0.1.0 * @category Lang * @param {*} val 要检查的值。 * @returns {string} 字符串, 如 [object Number] * @example * * toTypeString('value') * // => [object String] * * toTypeString(123) * // => [object Number] */ export declare const toTypeString: (value: unknown) => string; /** * 生成32位码 * @static * @since 0.1.0 * @returns {string} 随机数 * @example * * var shallow = _.guid(); * console.log(shallow); // 359b53bab8ff1b0b1f7f9a32ac20c2aa */ export declare const uuid: () => string; export { }