diff --git a/utils-merge/utils-merge-tests.ts b/utils-merge/utils-merge-tests.ts
new file mode 100644
index 000000000..b4a4a1487
--- /dev/null
+++ b/utils-merge/utils-merge-tests.ts
@@ -0,0 +1,9 @@
+///
+
+import merge from "utils-merge";
+
+type Result = {a: string, b: number};
+
+let result: Result;
+
+result = merge<{a: string}, {b: number}, Result>({a: ''}, {b: 42});
diff --git a/utils-merge/utils-merge.d.ts b/utils-merge/utils-merge.d.ts
new file mode 100644
index 000000000..0cb7f2522
--- /dev/null
+++ b/utils-merge/utils-merge.d.ts
@@ -0,0 +1,10 @@
+// Type definitions for utils-merge
+// Project: https://github.com/jaredhanson/utils-merge
+// Definitions by: Ilya Mochalov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "utils-merge" {
+ function merge(a: TA, b: TB): TResult;
+
+ export default merge;
+}