mihawk
Version:
A tiny & simple mock server tool, support json,js,cjs,ts(typescript).
96 lines (95 loc) • 3.32 kB
TypeScript
/**
* 获取对象类型
* - 缺陷: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;