diff --git a/types/deepmerge/deepmerge-tests.ts b/types/deepmerge/deepmerge-tests.ts index 5467cb83f0..8e1ab07828 100644 --- a/types/deepmerge/deepmerge-tests.ts +++ b/types/deepmerge/deepmerge-tests.ts @@ -16,4 +16,14 @@ const expected = { quux: 5 }; -const result = deepmerge(x, y); +const result = deepmerge(x, y); +const anyResult = deepmerge(x, y); + +function reverseConcat(dest: number[], src: number[]) { + return src.concat(dest); +} + +const withOptions = deepmerge(x, y, { + clone: false, + arrayMerge: reverseConcat +}); diff --git a/types/deepmerge/index.d.ts b/types/deepmerge/index.d.ts index 96d0412aa6..5b5e3806bd 100644 --- a/types/deepmerge/index.d.ts +++ b/types/deepmerge/index.d.ts @@ -1,17 +1,19 @@ // Type definitions for deepmerge 1.3 // Project: https://github.com/KyleAMathews/deepmerge // Definitions by: marvinscharle +// syy1125 // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped export = deepmerge; -declare function deepmerge(x: T, y: T, options?: deepmerge.Options): T; +declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T; +declare function deepmerge(x: T1, y: T2, options?: deepmerge.Options): T1 & T2; declare namespace deepmerge { - interface Options { + interface Options { clone?: boolean; - arrayMerge?(destination: T, source: T, options?: Options): T; + arrayMerge?(destination: any[], source: any[], options?: Options): any[]; } - function all(objects: T[], options?: Options): T; + function all(objects: Array>, options?: Options): T; }