diff --git a/promise.prototype.finally/promise.prototype.finally-tests.ts b/promise.prototype.finally/promise.prototype.finally-tests.ts
new file mode 100644
index 0000000000..8ab0c22b98
--- /dev/null
+++ b/promise.prototype.finally/promise.prototype.finally-tests.ts
@@ -0,0 +1,12 @@
+///
+
+var promise = new Promise((resolve, reject) => {
+ resolve(true);
+});
+
+promise.finally(() => {});
+promise.then(() => {}, () => {}).finally(() => {});
+promise.catch(() => {}).finally(() => {});
+
+var allPromise = Promise.all([promise]);
+allPromise.finally(() => {});
diff --git a/promise.prototype.finally/promise.prototype.finally.d.ts b/promise.prototype.finally/promise.prototype.finally.d.ts
new file mode 100644
index 0000000000..6e72b6e1d4
--- /dev/null
+++ b/promise.prototype.finally/promise.prototype.finally.d.ts
@@ -0,0 +1,8 @@
+// Type definitions for promise.prototype.finally v1.0.1
+// Project: https://github.com/matthew-andrews/Promise.prototype.finally
+// Definitions by: Slava Shpitalny
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare interface Promise {
+ finally(onFinally?: () => U | Promise): Promise;
+}