Skip to content

@pmun/utils / mergeWithDefaultModel

Function: mergeWithDefaultModel()

ts
function mergeWithDefaultModel<T>(defaultModel, source?): T;

根据默认模型的属性键(key),从源数据中提取匹配字段, 并将非 undefined 的值覆盖到默认模型上,返回安全的新对象。

适用于表单回填场景:避免接口返回的冗余字段污染表单参数, 同时不破坏已定义的默认值。

Type Parameters

T

T extends Record<string, any>

Parameters

defaultModel

T

默认数据定义(提供合法的 Key 列表和基础默认值)

source?

外部源数据(可为空或非对象,非对象时会被忽略)

null | Record<string, any>

Returns

T

提纯组合后的安全数据对象

Example

ts
const defaultForm = {
  id: '',
  name: '',
  age: 18,
  enabled: true,
}

mergeWithDefaultModel(defaultForm, {
  name: 'Tom',
  age: undefined,
  extra: 'ignored',
})
// { id: '', name: 'Tom', age: 18, enabled: true }