Skip to content

Home > @zero-dim/utils > deepExtend

deepExtend() function

深度扩展一个对象

Signature:

typescript
export declare function deepExtend(origin: any, target?: any, mode?: any): any;

Parameters

Parameter

Type

Description

origin

any

要扩展的目标对象

target

any

(Optional) 作为源的对象,其属性将被复制

mode

any

(Optional) 可选的模式参数,影响 _clone 属性的处理方式

**Returns:**

any

修改后的目标对象

Remarks

  • 支持深层嵌套的对象合并 - 自动处理数组类型 - 处理带有 _clone 属性的特殊对象 - 保留特殊的 __json 和 __origin 属性 - 可以通过 mode 参数控制 _clone 的行为

Example

typescript
// 示例1: 基础对象合并
const orig = { a: 1, b: { x: 1 } };
const target = { b: { y: 2 }, c: 3 };
deepExtend(orig, target);
// 结果: { a: 1, b: { x: 1, y: 2 }, c: 3 }

// 示例2: 数组处理
const orig2 = { items: [1, 2] };
const target2 = { items: [3, 4] };
deepExtend(orig2, target2);
// 结果: { items: [3, 4] }

// 示例3: 特殊对象处理
const orig3 = {};
const target3 = {
  special: {
    _clone: () => ({ value: 'cloned' }),
    data: 'original'
  }
};
deepExtend(orig3, target3);
// 结果: { special: { value: 'cloned' } }

// 示例4: 处理特殊属性
const orig4 = {};
const target4 = {
  data: {
    __json: '{"type":"special"}',
    __origin: 'external'
  }
};
deepExtend(orig4, target4);
// 保留特殊属性