@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 }