UNPKG

x-js-utils

Version:
39 lines (38 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var deepClone_1 = require("./deepClone"); // JS对象深度合并 function deepMerge(target, source) { if (target === void 0) { target = {}; } if (source === void 0) { source = {}; } target = (0, deepClone_1.default)(target); if (typeof target !== 'object' || typeof source !== 'object') return null; for (var prop in source) { if (!source.hasOwnProperty(prop)) continue; if (prop in target) { if (typeof target[prop] !== 'object') { target[prop] = source[prop]; } else { if (typeof source[prop] !== 'object') { target[prop] = source[prop]; } else { if (target[prop].concat && source[prop].concat) { target[prop] = target[prop].concat(source[prop]); } else { target[prop] = deepMerge(target[prop], source[prop]); } } } } else { target[prop] = source[prop]; } } return target; } exports.default = deepMerge;