본문으로 건너뛰기

mergeProperties

기준이 되는 target 객체와 source 객체의 프로퍼티를 병합하는 유틸 함수입니다.

Key가 동일할 때 값이 원시 타입의 경우 source의 값으로 덮어씌워지며, 배열인 경우 target과 source 요소를 모두 갖는 배열을 반환합니다.


Interface

const mergeProperties: <
T extends Record<PropertyKey, any>,
K extends Record<PropertyKey, any>
>(
target: T,
source: K
) => T & K;

Usage

import { mergeProperties } from '@devgrace/utils';

const target = {
a: 1,
b: 2,
c: {
c_a: 1,
c_b: 2,
},
d: 4,
e: [1, 2],
};
const source = {
c: {
c_c: 3,
c_d: 4,
},
d: 5,
e: [3, 4],
};

const obj = mergeProperties(target, source);

/**
* obj = {
a: 1,
b: 2,
c: {
c_a: 1,
c_b: 2,
c_c: 3,
c_d: 4,
},
d: 5,
e: [1, 2, 3, 4],
};
*/