diff --git a/is-plain-object/is-plain-object-tests.ts b/is-plain-object/is-plain-object-tests.ts
new file mode 100644
index 0000000000..eb57b12434
--- /dev/null
+++ b/is-plain-object/is-plain-object-tests.ts
@@ -0,0 +1,25 @@
+///
+
+import * as isPlainObject from 'is-plain-object';
+
+isPlainObject(Object.create({}));
+//=> true
+isPlainObject(Object.create(Object.prototype));
+//=> true
+isPlainObject({foo: 'bar'});
+//=> true
+isPlainObject({});
+
+isPlainObject(1);
+//=> false
+isPlainObject(['foo', 'bar']);
+//=> false
+isPlainObject([]);
+//=> false
+class Foo {}
+isPlainObject(new Foo);
+//=> false
+isPlainObject(null);
+//=> false
+isPlainObject(Object.create(null));
+//=> false
\ No newline at end of file
diff --git a/is-plain-object/is-plain-object.d.ts b/is-plain-object/is-plain-object.d.ts
new file mode 100644
index 0000000000..47d277f186
--- /dev/null
+++ b/is-plain-object/is-plain-object.d.ts
@@ -0,0 +1,10 @@
+// Type definitions for is-plain-object
+// Project: https://github.com/jonschlinkert/is-plain-object
+// Definitions by: Kevin Zeng
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare module "is-plain-object" {
+ namespace isPlainObject {}
+ function isPlainObject(obj: any): boolean;
+ export = isPlainObject;
+}
\ No newline at end of file