diff --git a/actioncable/actioncable-tests.ts b/actioncable/actioncable-tests.ts
new file mode 100644
index 000000000..c32bbb2a8
--- /dev/null
+++ b/actioncable/actioncable-tests.ts
@@ -0,0 +1,4 @@
+///
+App = {};
+App.cable = ActionCable.createConsumer();
+App.cable.subscriptions.create("NetworkChannel", {});
diff --git a/actioncable/actioncable.d.ts b/actioncable/actioncable.d.ts
new file mode 100644
index 000000000..2b1dda258
--- /dev/null
+++ b/actioncable/actioncable.d.ts
@@ -0,0 +1,31 @@
+// Type definitions for ActionCable
+// Project: https://github.com/rails/rails/tree/master/actioncable
+// Definitions by: [Vincent Zhu]
+// Definitions: https://github.com/zhu1230/DefinitelyTyped
+
+declare module ActionCable {
+ interface Channel {
+ unsubscribe(): void;
+ perform(action: string, data: {}): void;
+ }
+ interface Subscriptions {
+ create(chan_name: string, obj: {}): Channel;
+ }
+ interface Cable {
+ subscriptions: Subscriptions;
+ }
+ function createConsumer(): Cable;
+ function createConsumer(url: string): Cable;
+}
+
+declare interface AppInterface {
+ cable?: ActionCable.Cable;
+ network?: ActionCable.Channel;
+}
+
+declare var App: AppInterface;
+
+
+
+
+