Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ export { default as set, merge, mergeWith } from './utils/set';
export { default as warning, noteOnce } from './warning';
export { default as omit } from './omit';
export { default as toArray } from './Children/toArray';
export { default as mergeProps } from './mergeProps';
18 changes: 18 additions & 0 deletions src/mergeProps.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function mergeProps<A, B>(a: A, b: B): B & A;
function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
function mergeProps(...items: any[]) {
const ret: any = {};
items.forEach(item => {
if (item) {
Object.keys(item).forEach(key => {
if (item[key] !== undefined) {
ret[key] = item[key];
}
});
}
});
return ret;
}

export default mergeProps;
Loading