@ivujs/i-utils
Version:
前端模块化 JavaScript 工具库
86 lines (85 loc) • 2.98 kB
TypeScript
/**
* map转object
* @param {Map} map 参数
* @returns {Object} 返回Object
*/
export declare function mapToObject(map: Map<any, any>): Record<any, any>;
/**
* map转json字符串
* @param {Map} map 参数
* @returns {string} 返回Json字符串
*/
export declare function mapToJson(map: Map<any, any>): string;
/**
* object转map
* @param {Object} obj 参数
* @returns {Map} 返回Map
*/
export declare function objectToMap(obj: Record<any, any>): Map<any, any>;
/**
* json字符串转map
* @param {string} json json字符串
* @returns {Map} 返回Map
*/
export declare function jsonToMap(json: string): Map<any, any>;
/**
* json对象转json字符串
* @param {Object} json json对象
* @param {boolean} replacer 是否处理循环引用
* @returns {string} 返回Json字符串
*/
export declare function stringifyJson(json: Record<any, any>, replacer?: boolean): string;
/**
* json字符串转json对象
* @param {string} json json字符串
* @returns {Object} 返回Json对象
*/
export declare function parseJson(json: string): Record<any, any> | null;
/**
* 浅拷贝数据
* @param {*} source 拷贝的数据
* @returns {*} 返回浅拷贝的数据
*/
export declare function clone(source: any): any;
/**
* 深拷贝数据
* @param {*} source 拷贝的数据
* @returns {*} 返回深拷贝的数据
*/
export declare function cloneDeep(source: any): any;
/**
* 比较两个对象是否相等
* @description 方法只能对比简单的对象,不能包含function,另外对象的属性顺序不一致也是相等的
* @param {Object} obj1 对象1
* @param {Object} obj2 对象2
* @returns {boolean} 返回true和false
*/
export declare function objectEquals(obj1: Record<any, any>, obj2: Record<any, any>): boolean;
/**
* 合并对象
* @param {Object} target 目标对象
* @param {Object[]} source 原对象列表
* @returns {Object} 返回合并后的对象
*/
export declare function merge(target: Record<any, any>, ...source: Record<any, any>[]): any;
/**
* 根据字符串属性路径获取目标对象的值
* @example
* let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
* this._getValueByPath(res, 'data.pages.pageSize'); // 这里会输出20
* @param {Object} target 目标对象
* @param {string} path 字符串属性路径
* @returns {*} 返回目标对象的值
*/
export declare function getValueByPath(target: Record<any, any>, path?: string): any;
/**
* 根据字符串属性路径设置目标对象的值
* @example
* let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
* this._setValueByPath(res, 'data.pages.pageSize', 30); // 打印res对象会发现pageSize的值改为了30
* @param {Object} target 目标对象
* @param {string} path 字符串属性路径
* @param {*} value 值
* @returns {*} 返回修改过后的目标对象
*/
export declare function setValueByPath(target: Record<any, any>, path: string | undefined, value: any): Record<any, any>;