axios-miniprogram/src/helpers/deepMerge.ts

21 lines
477 B
TypeScript
Raw Normal View History

2023-03-28 21:32:54 +08:00
import { isPlainObject } from './isTypes';
export function deepMerge<T extends AnyObject>(...objs: T[]): T {
const result: AnyObject = {};
for (const obj of objs) {
for (const [key, val] of Object.entries(obj)) {
if (isPlainObject(val)) {
const rVal = result[key];
result[key] = isPlainObject(rVal)
? deepMerge(rVal, val)
: deepMerge(val);
2023-03-28 21:32:54 +08:00
} else {
result[key] = val;
}
}
}
2023-03-28 21:32:54 +08:00
return result as T;
}