diff --git a/scriptjs/scriptjs-tests.ts b/scriptjs/scriptjs-tests.ts
new file mode 100644
index 0000000000..4da747c978
--- /dev/null
+++ b/scriptjs/scriptjs-tests.ts
@@ -0,0 +1,29 @@
+///
+
+import * as $script from 'scriptjs';
+
+const callback = (): void => console.log('done');
+
+function main(): void {
+ $script('foo.js', callback);
+ $script(['foo.js', 'bar.js'], callback);
+
+ $script('foo.js', 'foo', callback);
+ $script(['foo.js', 'bar.js'], 'bundle', callback);
+
+ $script('foo', callback);
+ $script('bundle', callback);
+
+ $script.ready('foo', callback);
+ $script.ready('bundle', callback);
+
+ $script.ready(['foo', 'bar', 'thunk'], callback, (missing: string[]): void => console.log('missing deps:', missing));
+
+ $script.path('/js/modules/');
+
+ $script.get('http://example.com/base.js', callback);
+
+ $script.urlArgs('key=value&foo=bar');
+
+ $script.order(['foo.js', 'bar.js'], 'bundle', callback);
+}
diff --git a/scriptjs/scriptjs.d.ts b/scriptjs/scriptjs.d.ts
new file mode 100644
index 0000000000..aa76b4517c
--- /dev/null
+++ b/scriptjs/scriptjs.d.ts
@@ -0,0 +1,18 @@
+// Type definitions for scriptjs
+// Project: https://github.com/ded/script.js
+// Definitions by: Steve Lam
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+interface $script {
+ (paths:string | string[], idOrDone:string | (() => void), optDone?:() => void): $script;
+ get(path:string, fn:() => void): void;
+ order(scripts:string[], id:string, done:() => void): void;
+ path(p:string): void;
+ urlArgs(str:string): void;
+ ready(deps:string | string[], ready:() => void, req?:(missing:string[]) => void): $script;
+}
+
+declare module 'scriptjs'{
+ var $script: $script;
+ export = $script;
+}