项目中需要自定义 mergeDeep 函数功能,不想再依赖引入新的类似于 deepMerge 库, 依赖现有库 lodash-es 函数,自实现一下 deepMerge 函数。
import {mergeWith, isArray} from "lodash-es";
export const deepMerge = <T>(oldObj: T,srcObj: any) => {
return mergeWith(oldObj, srcObj, customizer)
}
// 自定义merge
function customizer<T>(objValue:T, srcValue:T):any {
if (isArray(objValue)) {
return objValue.concat(srcValue);
} else if(objValue instanceof Object){
return mergeWith(objValue, srcValue, customizer)
}
}