@polyv/utils
Version:
Utility functions of Polyv frontend development.
44 lines (43 loc) • 1.24 kB
TypeScript
/**
* 本模块提供 json 处理相关方法。
* @packageDocumentation
*/
/**
* 深度克隆指定对象(仅限 JSON 支持的数据类型)。
* @param obj 指定对象。
* @return 克隆结果。
* @example
* ```javascript
* cloneJSON({ a: 1, b: 2 }); // { a: 1, b: 2 }
* ```
*/
export declare function cloneJSON(obj: unknown): any;
/**
* JSON 字符串解析失败时的回调。
*/
export interface IErrorCallback {
(e: Error): unknown;
}
/**
* 尝试把指定字符串解析为 JSON 对象。
* @param str 指定字符串。
* @param onError 解析出错时执行的回调函数。函数返回值会作为解析失败时的解析结果。
* @return 解析结果。
* @example
* ```javascript
* tryParseJSON('ss&&**'); // undefined
* tryParseJSON('{"a": 1}'); // { a: 1 }
* ```
*/
export declare function tryParseJSON(str: string, onError?: IErrorCallback): unknown;
/**
* 尝试把指定字符串解析为 JSON 对象。
* @param str 指定字符串。
* @param defaultValue 解析出错时的默认结果。
* @return 解析结果。
* @example
* ```javascript
* tryParseJSON('12&&**', 1); // 1
* ```
*/
export declare function tryParseJSON(str: string, defaultValue?: unknown): unknown;