diff --git a/format-unicorn/format-unicorn-safe-tests.ts b/format-unicorn/format-unicorn-safe-tests.ts
new file mode 100644
index 000000000..fd115c24a
--- /dev/null
+++ b/format-unicorn/format-unicorn-safe-tests.ts
@@ -0,0 +1,11 @@
+///
+
+import formatUnicorn from 'format-unicorn/safe';
+
+// Safe version
+var outputString: string;
+
+outputString = formatUnicorn('Hello, {name}; you have {favoriteNumber}', {
+ name: "kruncher",
+ favoriteNumber: 42
+});
diff --git a/format-unicorn/format-unicorn-safe.d.ts b/format-unicorn/format-unicorn-safe.d.ts
new file mode 100644
index 000000000..24d75bd9b
--- /dev/null
+++ b/format-unicorn/format-unicorn-safe.d.ts
@@ -0,0 +1,10 @@
+// Type definitions for format-unicorn
+// Project: https://github.com/tallesl/format-unicorn
+// Definitions by: kruncher
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module 'format-unicorn/safe' {
+
+ export default function (str: string, replacements: { }): string;
+
+}
diff --git a/format-unicorn/format-unicorn-tests.ts b/format-unicorn/format-unicorn-tests.ts
new file mode 100644
index 000000000..e256b65ae
--- /dev/null
+++ b/format-unicorn/format-unicorn-tests.ts
@@ -0,0 +1,11 @@
+///
+
+import 'format-unicorn';
+
+// Unsafe version
+var outputString: string;
+
+outputString = 'Hello, {name}; you have {favoriteNumber}'.formatUnicorn({
+ name: "kruncher",
+ favoriteNumber: 42
+});
diff --git a/format-unicorn/format-unicorn.d.ts b/format-unicorn/format-unicorn.d.ts
new file mode 100644
index 000000000..d1780140f
--- /dev/null
+++ b/format-unicorn/format-unicorn.d.ts
@@ -0,0 +1,12 @@
+// Type definitions for format-unicorn
+// Project: https://github.com/tallesl/format-unicorn
+// Definitions by: kruncher
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface String {
+ formatUnicorn(replacements: { }): string;
+}
+
+declare module "format-unicorn" {
+
+}