export function mergeProps(a: A, b: B): B & A;
export function mergeProps(a: A, b: B, c: C): C & B & A;
// merge defaultProps && props
export function mergeProps(...items: any[]) {
const result = { ...items[0] };
items.forEach((item) => {
for (const key in item) {
const val = item[key];
// eslint-disable-next-line no-prototype-builtins
result[key] = result.hasOwnProperty(key) ? result[key] : val;
}
});
return result;
}