UNPKG

mihawk

Version:

A tiny & simple mock server tool, support json,js,cjs,ts(typescript).

96 lines (95 loc) 3.32 kB
/** * 获取对象类型 * - 缺陷:Object.prototype.toString.call(NaN) 的时候,返回的是 number,即其无法准确判断 number * - 关于 NaN 的判断,推荐使用 isNaNStrict 函数 * @param {unknown} obj * @returns {string} typeName */ export declare function getType(obj: unknown): string; /** * 检查对象类型 * @param {unknown} obj * @param {string} typeName * @returns {boolean} */ export declare function isType(obj: unknown, typeName: string): boolean; /** * 判断是否为 null 或 undefined * @param {unknown} value * @returns */ export declare function isNil(value: unknown): value is null | undefined; /** alias for isNil */ export declare const isNullOrUndefined: typeof isNil; /** alias for isNil */ export declare const isUndefinedOrNull: typeof isNil; export type PrimitiveType = null | undefined | string | number | boolean | symbol | bigint; /** * 是否为最基础类型 * @param {unknown} obj * @returns {boolean} */ export declare function isPrimitvieType(obj: unknown): obj is PrimitiveType; export type SimpleJsonPropType = null | string | boolean | number; /** * 检查是否为简单的 json 的值,如 string,number,boolean,null * - 常规 json 值,不含 undefined * @param {unique} obj * @returns {boolean} */ export declare function isSimpleJsonPropType(obj: unknown): obj is SimpleJsonPropType; /** * 严格判断数字,会对 NaN 敏感,不会判定其为数字 * @param {unknown} n * @returns {boolean} */ export declare function isNumStrict(n: unknown): n is number; /** * 严格判断 NaN 这种数据 * 【⚠️注意】为什么要自己实现,直接用原生 isNaN 不行吗? * 不行!因为 * - 1. isNaN 会对 class 实例判定为 true * - 2. isNaN(undefined) 会被判定为 true * eg: * class A {...} * cosnt a = new A(); * isNaN(a); // true 竟然是 true * @param obj * @returns */ export declare function isNaNStrict(obj: unknown): obj is number; /** * 严格判定对象 * - 排除掉空:undefined * - 针对 typeof 操作后返回 ’object‘ 的情况,做如下排除: * - 排除掉 null * - 排除掉特殊对象实例:正则表达式 Regex, 错误 Error,日期 Date 的实例 * - 排除掉集合对象实例:Map, Set, WeakMap, WeakSet * - 排除掉TypedArray 实例,如 Uint8Array, Uint16Array, Uint32Array 等特殊数组实例 * - 排除掉 Object.prototype.toString.call(obj) 判断后,不是 object 的情况,如自定义的 class 实例 * - 否则,判定为 false,非对象 * @param {unknown} obj * @returns {boolean} */ export declare function isObjStrict(obj: unknown): obj is NonNullable<Record<string, any>>; export type EmptyObj = Record<string | number | symbol, never>; /** * 是否为空对象 * @param {unknown} obj * @returns {boolean} */ export declare function isEmptyObj(obj: unknown): obj is EmptyObj; export type EmptyArr = never[]; /** * 检查空数组 * @param {unknown} arr * @returns */ export declare function isEmptyArr(arr: unknown): arr is EmptyArr; export declare const isEmptyList: typeof isEmptyArr; /** * 判断 json 文本是否合理 * @param {string} jsonStr * @returns {boolean} isValidJsonCnt */ export declare function isJsonStr(jsonStr: string, isJson5?: boolean): jsonStr is string;