diff --git a/node-cache/node-cache-tests.ts b/node-cache/node-cache-tests.ts
new file mode 100644
index 000000000..a61ec6c89
--- /dev/null
+++ b/node-cache/node-cache-tests.ts
@@ -0,0 +1,98 @@
+///
+
+import NodeCache = require('node-cache');
+
+import Options = NodeCacheTypes.Options;
+import Stats = NodeCacheTypes.Stats;
+import Callback = NodeCacheTypes.Callback;
+
+interface TypeSample {
+ a: number;
+ b: string;
+ c: boolean;
+}
+
+{
+ let options: Options;
+ let cache: NodeCacheTypes.NodeCache;
+ cache = new NodeCache();
+ cache = new NodeCache(options);
+}
+
+{
+ let cache: NodeCache;
+ let key: string;
+ let cb: Callback;
+ let result: TypeSample;
+ result = cache.get(key);
+ result = cache.get(key, cb);
+}
+
+{
+ let cache: NodeCache;
+ let keys: string[];
+ let cb: Callback<{[key: string]: TypeSample}>;
+ let result: {[key: string]: TypeSample};
+ result = cache.mget(keys);
+ result = cache.mget(keys, cb);
+}
+
+{
+ let cache: NodeCache;
+ let key: string;
+ let value: TypeSample;
+ let ttl: number|string;
+ let cb: Callback;
+ let result: boolean;
+ result = cache.set(key, value);
+ result = cache.set(key, value, ttl);
+ result = cache.set(key, value, ttl, cb);
+ result = cache.set(key, value, cb);
+}
+
+{
+ let cache: NodeCache;
+ let keys: string|string[];
+ let cb: Callback;
+ let result: number;
+ result = cache.del(keys);
+ result = cache.del(keys, cb);
+}
+
+{
+ let cache: NodeCache;
+ let key: string;
+ let ttl: number;
+ let cb: Callback;
+ let result: boolean;
+ result = cache.ttl(key);
+ result = cache.ttl(key, ttl);
+ result = cache.ttl(key, ttl, cb);
+ result = cache.ttl(key, cb);
+}
+
+{
+ let cache: NodeCache;
+ let cb: Callback;
+ let result: string[];
+ result = cache.keys();
+ result = cache.keys(cb);
+}
+
+{
+ let cache: NodeCache;
+ let result: Stats;
+ result = cache.getStats();
+}
+
+{
+ let cache: NodeCache;
+ let result: void;
+ result = cache.flushAll();
+}
+
+{
+ let cache: NodeCache;
+ let result: void;
+ result = cache.close();
+}