Type de l'objet cible.
Type de l'objet source.
Un nouvel objet de type T & U résultant de la fusion récursive.
deepMerge({ a: 1, b: { c: 2, d: 3 } }, { b: { c: 99 } })
// → { a: 1, b: { c: 99, d: 3 } }
deepMerge({ a: [1, 2] }, { a: [3, 4, 5] })
// → { a: [3, 4, 5] } (tableau écrasé, pas fusionné)
deepMerge({ d: new Date('2020') }, { d: new Date('2024') })
// → { d: Date(2024) } (instance écrasée, pas fusionnée)
Fusionne
sourcedanstargetde façon récursive et retourne un nouvel objet.Les objets plains imbriqués sont fusionnés récursivement. Les tableaux, les valeurs primitives et les instances de classes (
Date,Map, etc.) desourceécrasent ceux detarget. Les propriétés présentes danstargetmais absentes desourcesont conservées. Les deux objets d'origine ne sont pas mutés.Les clés sensibles (
__proto__,constructor,prototype) sont ignorées pour prévenir toute pollution de prototype.