diff --git a/sharedworker/SharedWorker-tests.ts b/sharedworker/SharedWorker-tests.ts
new file mode 100644
index 0000000000..853daa6b2f
--- /dev/null
+++ b/sharedworker/SharedWorker-tests.ts
@@ -0,0 +1,9 @@
+///
+
+var worker_with_name = new SharedWorker('worker.js', "worker");
+
+var worker = new SharedWorker('worker.js');
+
+worker.port.onmessage = function(e) {
+ console.log(e);
+};
diff --git a/sharedworker/SharedWorker.d.ts b/sharedworker/SharedWorker.d.ts
new file mode 100644
index 0000000000..b106d1342e
--- /dev/null
+++ b/sharedworker/SharedWorker.d.ts
@@ -0,0 +1,29 @@
+// Type definitions for SharedWorker
+// Project: http://www.w3.org/TR/workers/
+// Definitions by: Toshiya Nakakura
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module SharedWorker {
+ interface AbstractWorker extends EventTarget {
+ onerror: (ev: ErrorEvent) => any;
+ }
+
+ export interface SharedWorker extends AbstractWorker {
+ /**
+ * the value it was assigned by the object's constructor.
+ * It represents the MessagePort for communicating with the shared worker.
+ * @type {MessagePort}
+ */
+ port: MessagePort;
+ }
+}
+
+declare var SharedWorker: {
+ prototype: SharedWorker.SharedWorker;
+ /***
+ *
+ * @param {string} stringUrl Pathname to JavaScript file
+ * @param {string} name Name of the worker to execute
+ */
+ new (stringUrl: string, name?: string): SharedWorker.SharedWorker;
+};