ph-utils
Version:
js 开发工具集,前后端都可以使用(commonjs和es module)
155 lines (154 loc) • 5.65 kB
TypeScript
/**
* 验证参数是否为空
* @param str 待验证的参数
* @param ignoreWhitespace 如果是字符串是否忽略空格(包括空白字符串以及[\r\t\n]之类的制表符),默认为true
*/
export declare function isBlank(str?: any, ignoreWhitespace?: boolean): boolean;
/**
* 屏蔽手机号,中间部分用 * 展示
* @param mobile 待屏蔽的手机号
* @returns 屏蔽后的手机号,例如:123 **** 1234
*/
export declare function shieldMobile(mobile: string): string;
/**
* 验证参数是否是数字
* @param str 待验证的字符串
* @param numericParam 通过参数标记是否包含小数、正数
* @param numericParam.isPositive 是否是正数, 默认: false
* @param numericParam.isFloat 是否是小数, 默认: true
* @returns true 是数字, false 不是数字
*/
export declare function isNumeric(str: string, numericParam?: {
isPositive?: boolean;
isFloat?: boolean;
}): boolean;
/**
* 验证参数是否是Boolean 类型
* @param str 待验证的字符串
* @returns
*/
export declare function isBoolean(str: string): boolean;
/** 生成随机数的选项 */
interface RandomStringOption {
/** 生成指定长度的随机字符串 */
length: number;
/** 是否包含英文字母, 默认为: true */
hasLetter?: boolean;
/** 生成纯数字的随机数时, 首位是否允许为 0, 默认为: true */
firstIsZero?: boolean;
}
interface RangeRandomOption {
/** 配合 max 生成 [min~max] 之间的随机数 */
min: number;
/** 配合 min 生成 [min~max] 之间的随机数 */
max: number;
/** 生成的随机数,是否包含 max, 默认: false */
hasEnd?: boolean;
/** 生成的随机数是否是整数, 默认: true */
isInteger?: boolean;
}
/**
* 生成指定长度的随机数
*
* @param len - 生成的随机数长度
*
* @example <caption>1. 生成指定长度的随机字符串</caption>
* random(1); // 长度为 1 的随机字符串
*/
export declare function random(len: number): string;
/**
* 生成介于 [min, max] 之间的随机数
*
* @param option 配置项
* @param option.min 生成介于 [min, max] 之间的随机数
* @param option.max 生成介于 [min, max] 之间的随机数
* @param option.hasEnd 生成的随机数,是否包含 max, 默认: false
* @param option.isInteger 生成的随机数是否是整数, 默认: true
*/
export declare function random(option: RangeRandomOption): number;
/**
* 生成指定长度随机数
*
* @param option 配置项
* @param option.length 生成的随机数长度
* @param option.hasLetter 是否包含英文字母, 默认为: true
* @param option.firstIsZero 生成纯数字的随机数时, 首位是否允许为 0, 默认为: true
*
* @example <caption>2. 生成纯数字且首位不能为0长度为1的随机字符</caption>
* random({ length: 1, hasLetter: false, firstIsZero: false })
*/
export declare function random(option: RandomStringOption): string;
/**
* 带有错误名称标记的错误类型
*/
export declare class BaseError extends Error {
/**
* 错误名称,类似于 Java 中的不同的 Exception[NullPointerException];
* 增加 name 字段,表明不同的错误,当需要根据不同的错误执行不同的处理的时候,会很有用
*/
name: string;
/**
* 构造一个 name = BaseError 的错误信息
* @param message 错误描述
*/
constructor(message: string);
/**
*
* @param name 错误名称
* @param message 错误描述
*/
constructor(name: string, message: string);
}
/**
* 将金额数字格式化为金额格式显示并且会保留两位小数[去除多余的位数,不是四舍五入,而是直接舍去] 1234523432.23 => 123,123,123.23
* @param {number} number 待转换的金额数字
* @return string
*/
export declare function formatMoney(number: number): string;
/**
* 将风格由大写风格转换为下划线风格: HelloWorld -> hello-world
* @param name 命名, 例如: HelloWorld
* @param connector 连接符, 默认为: _
*/
export declare function snakeCaseStyle(name: string, connector?: string): string;
/**
* 对数字进行四舍五入处理
* @param num 需要进行四舍五入的数字
* @param precision 精度,默认为2,即保留小数点后两位
* @param roundType 舍入类型,默认为0,提供三种取值:
* 0: 标准四舍五入
* 1: 向上取整
* 2: 向下取整
* @returns 返回经过指定方式舍入后的数字
*/
export declare function round(num: number, precision?: number, roundType?: 0 | 1 | 2): number;
/**
* 反转字符串
*/
export declare function reverseStr(str: string): string;
/** 数据格式化配置 */
interface FormDataConfig<T> {
/** 配置需要转换为数字的字段 */
numberFields?: (keyof T)[];
/** 配置需要转换为字符串的字段 */
stringFields?: (keyof T)[];
/** 自定义的格式化 */
formatter?: {
[K in keyof T]?: "number" | "string" | ((value: any) => number | string);
};
}
/**
* 嵌套的 json 指定 key 数据
* @param data JSON格式数据
* @param keys 待获取的数据 key, 可以通过 [.] 获取嵌套数据, 例如: a.b.c
* @returns
*/
export declare function getJSONValue(data: Record<string, any>, keystr: string): Record<string, any> | null;
/**
* 数据格式化主要用于数据类型转换
* @param data 待转换数据类型的数据
* @param config 转换配置
* @returns
*/
export declare function formatData<T extends Record<string, any>>(data: T, config?: FormDataConfig<T>): T;
export {};