JS Built-ins
TypeScriptadvanced

Utility Types β€” deepMerge

πŸ“– Usage Example
deepMerge({ a: { x: 1 } }, { a: { y: 2 } })   // β†’ { a: { x: 1, y: 2 } }

deepMerge recursively merges nested objects instead of overwriting nested properties.

Utility Types: Shallow Deep Merge

Challenge: Implement deepMerge<T extends object, U extends object>(a: T, b: U): T & U performing a one-level deep merge (nested objects are merged, not replaced).

deepMerge({ a: { x: 1 }, b: 2 }, { a: { y: 3 } })
// β†’ { a: { x: 1, y: 3 }, b: 2 }
πŸ’‘ Hints (1)
  • β€’ Check if both values are objects before merging at that level.