Function: mergeDefault()
mergeDefault<
A,B>(base:A,overwrites?:B):DeepRequired<A&B>
Defined in: mergeDefault.ts:43
Deep merges 2 objects. Properties from the second parameter are applied to the first.
Type Parameters
| Type Parameter | 
|---|
| Aextendsobject | 
| BextendsPartial<A> | 
Parameters
| Parameter | Type | Description | 
|---|---|---|
| base | A | Base object | 
| overwrites? | B | Overwrites to apply | 
Returns
DeepRequired<A & B>
Remark
overwrites is also mutated!
Remark
If the value of a key in overwrites is undefined then the value of that same key in base is used instead!
Remark
This is essentially { ...base, ...overwrites } but recursively
Examples
const base = { a: 0, b: 1 };
const overwrites = {}; // will be { a: 0, b: 1 } after merge
mergeDefault(base, overwrites) // { a: 0, b: 1 }
const base = { a: 0, b: 1 };
const overwrites = { a: 2, i: 3 };
mergeDefault(base, overwrites) // { a: 2, i: 3, b: 1 };
const base = { a: 0, b: 1 };
const overwrites = { a: null };
mergeDefault(base, overwrites) // { a: null, b: 1 };
const base = { a: 0, b: 1 };
const overwrites = { a: undefined };
mergeDefault(base, overwrites) // { a: 0, b: 1 };
const base = { a: null };
const overwrites = { a: { b: 5 } };
mergeDefault(base, overwrites) // { a: { b: 5 } };