diff --git a/index.d.ts b/index.d.ts index 2fea20a..4b22e44 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,23 @@ -export function diff (originalObj: object, updatedObj: object): object +type NonTraverse = + | Date + | Function + | RegExp + | boolean + | number + | string + | symbol +export type DeepDiff = T extends NonTraverse + ? T + : T extends (infer U)[] + ? { [x: number]: U | undefined } + : T extends Record + ? { [K in U]?: DeepDiff } + : never + +export function diff< + T extends Record, + U extends Record, +>(originalObj: T, updatedObj: U): DeepDiff export function addedDiff (originalObj: object, updatedObj: object): object