UNPKG

meng-utils

Version:

一个js工具函数库,将平时常用的方法封装成通用库

103 lines (102 loc) 2.75 kB
/** * 对目标对象set属性值 * @param target - 目标对象 * @param options - set的key和value options:{ name: string, newValue: any } */ export declare function setProperty( target: { [key: string]: any; }, options: { name: string; newValue: any; }, ): void; /** * 获取目标参数属性 * @param obj * @param name * @returns */ export declare function getProperty<T extends object, K extends keyof T>( obj: T, name: K, ): T[K] | undefined; /** * 将多个对象属性复制到目标对象身上。 * 如果deep=true extend将执行深度复制,递归复制它找到的任何对象。否则,副本将与原始对象共享结构。 * 未定义的属性不会被复制,但是,从对象原型继承的属性将被复制 * @param target - 目标对象 * @param deep - 是否执行深度复制 * @param objs * @returns */ export declare function extend( target: any, deep?: boolean, ...objs: any[] ): any; /** * 深度复制对象 * @param obj - 被复制的对象 * @returns */ export declare function deepCopy< T extends { [key: string]: any; } = any, >(obj: T | null | undefined): T; /** * 深度合并对象,替换叶子结点同名属性 * 不会合并原型链上的属性 * @param original - 原始对象 * @param arrayProcessMethod - 数组处理方式 * - `true` 表示替换新值,不管新值为哪种类型 * - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组) * @param objects - 要合并到对象 * @returns * @example * ``` * const config = { * userName: { * first: 'A', * second: 'B', * }, * age: 2, * hobby:["读书"] * }; * const config2 = { * userName: { * first: "C" * }, * hobby:["唱歌"] * } * console.log(JSON.stringify(mu.deepMergeKey(config,false,config2))); // -> {"userName":{"first":"C","second":"B"},"age":2,"hobby":["读书","唱歌"]} * * ``` */ export declare function deepMergeKey( original: unknown, arrayProcessMethod: boolean, ...objects: any[] ): any; /** * 多个对象合并,如果有重名属性,则会合并成数组 * 此方法仅支持单层合并,不支持深层合并 * @param objs - 要合并的目标对象 * @returns */ export declare function mergeObject(...objs: any[]): any; /** * 浅拷贝 * @param target -要拷贝的目标源 * @returns 拷贝后产生的新对象 */ export declare function clone(target: any): any; /** * 对象深度拷贝 * @param target -待拷贝的源数据 * @param map - * @returns */ export declare function deepClone(target: any, map?: Map<any, any>): any;