diff --git a/archive/v0.1.13/mithril.min.zip b/archive/v0.1.13/mithril.min.zip
index 36e58522..1deb1c1f 100644
Binary files a/archive/v0.1.13/mithril.min.zip and b/archive/v0.1.13/mithril.min.zip differ
diff --git a/archive/v0.1.13/tools.html b/archive/v0.1.13/tools.html
index 15060885..93640b6b 100644
--- a/archive/v0.1.13/tools.html
+++ b/archive/v0.1.13/tools.html
@@ -67,6 +67,12 @@
You can pre-compile Mithril templates to make them run faster. For more information see this page:
Compiling Templates
+Typescript Support
+There's a type definition file that you can use to add Mithril support to Typescript
+mithril.d.ts
+You can use it by adding a reference to your Typescript files. This will allow the compiler to type-check calls to the Mithril API.
+/// <reference path="mithril.d.ts" />
+
Internet Explorer Compatibility
Mithril relies on some Ecmascript 5 features, namely: Array::indexOf and Object::keys, as well as the JSON object.
You can use polyfill libraries to support these features in IE7.
diff --git a/docs/tools.md b/docs/tools.md
index 6f4bb9cd..ce2fe847 100644
--- a/docs/tools.md
+++ b/docs/tools.md
@@ -41,6 +41,20 @@ You can pre-compile Mithril templates to make them run faster. For more informat
---
+### Typescript Support
+
+There's a type definition file that you can use to add Mithril support to Typescript
+
+[mithril.d.ts](mithril.d.ts)
+
+You can use it by adding a reference to your Typescript files. This will allow the compiler to type-check calls to the Mithril API.
+
+```javascript
+///
+```
+
+---
+
### Internet Explorer Compatibility
Mithril relies on some Ecmascript 5 features, namely: `Array::indexOf` and `Object::keys`, as well as the `JSON` object.
diff --git a/mithril.d.ts b/mithril.d.ts
new file mode 100644
index 00000000..958c22c0
--- /dev/null
+++ b/mithril.d.ts
@@ -0,0 +1,64 @@
+//Mithril type definitions for Typescript
+
+interface MithrilStatic {
+ (selector: string, attributes: Object, children?: any): MithrilVirtualElement;
+ (selector: string, children?: any): MithrilVirtualElement;
+ prop(value?: any): (value?: any) => any;
+ withAttr(property: string, callback: (value: any) => void): (e: Event) => any;
+ module(rootElement: Element, module: MithrilModule): void;
+ trust(html: string): String
+ render(rootElement: Element, children?: any): void
+ render(rootElement: HTMLDocument, children?: any): void
+ redraw(): void
+ route(rootElement: Element, defaultRoute: string, routes: { [key: string]: MithrilModule }): void
+ route(rootElement: HTMLDocument, defaultRoute: string, routes: { [key: string]: MithrilModule }): void
+ route(path: string): void
+ route(): string;
+ route(element: Element, isInitialized: boolean): void;
+ request(options: MithrilXHROptions): MithrilPromise;
+ deferred(): MithrilDeferred;
+ sync(promises: MithrilPromise[]): MithrilPromise;
+ startComputation(): void;
+ endComputation(): void;
+}
+
+interface MithrilVirtualElement {
+ tag: string;
+ attrs: Object;
+ children: any;
+}
+
+interface MithrilModule {
+ controller: Function;
+ view: Function;
+}
+
+interface MithrilDeferred {
+ resolve(value?: any): void;
+ reject(value?: any): void;
+ promise: MithrilPromise;
+}
+
+interface MithrilPromise {
+ (value?: any): any;
+ then(successCallback?: (value: any) => any, errorCallback?: (value: any) => any): MithrilPromise;
+}
+
+interface MithrilXHROptions {
+ method: string;
+ url: string;
+ user?: string;
+ password?: string;
+ data?: any;
+ background?: boolean;
+ unwrapSuccess?(data: any): any;
+ unwrapError?(data: any): any;
+ serialize?(dataToSerialize: any): string;
+ deserialize?(dataToDeserialize: string): any;
+ extract?(xhr: XMLHttpRequest, options: MithrilXHROptions);
+ type?(data: Object): void;
+ config?(xhr: XMLHttpRequest, options: MithrilXHROptions)
+}
+
+declare var Mithril: MithrilStatic;
+declare var m: MithrilStatic;
\ No newline at end of file