diff --git a/react-router/legacy/react-router-0.12-test.d.ts b/react-router/legacy/react-router-0.12-test.d.ts
new file mode 100644
index 000000000..bf6e2e272
--- /dev/null
+++ b/react-router/legacy/react-router-0.12-test.d.ts
@@ -0,0 +1,6 @@
+///
+
+declare module 'react-0.12' {
+ var exports: React.Exports;
+ export = exports;
+}
diff --git a/react-router/legacy/react-router-0.12-test.ts b/react-router/legacy/react-router-0.12-test.ts
index d0d122bd4..e896c80f7 100644
--- a/react-router/legacy/react-router-0.12-test.ts
+++ b/react-router/legacy/react-router-0.12-test.ts
@@ -1,8 +1,9 @@
+///
///
"use strict";
-import React = require('react');
-import Router = require('react-router');
+import React = require('react-0.12');
+import Router = ReactRouter;
// Mixin
class NavigationTest {
diff --git a/react-router/legacy/react-router-0.12.d.ts b/react-router/legacy/react-router-0.12.d.ts
index a38e55822..79763db11 100644
--- a/react-router/legacy/react-router-0.12.d.ts
+++ b/react-router/legacy/react-router-0.12.d.ts
@@ -227,8 +227,7 @@ declare module ReactRouter {
}
declare module 'react-router' {
- import Export = ReactRouter;
- export = Export;
+ export = ReactRouter;
}
declare module React {
diff --git a/react-router/react-router-test.ts b/react-router/react-router-test.ts
index 85180cf9e..62180a258 100644
--- a/react-router/react-router-test.ts
+++ b/react-router/react-router-test.ts
@@ -2,6 +2,7 @@
"use strict";
import React = require('react');
+import ReactAddons = require('react/addons');
import Router = require('react-router');
// Mixin
@@ -128,6 +129,9 @@ class DefaultRouteTest {
var Handler: React.ComponentClass;
React.createElement(Router.DefaultRoute, null);
React.createElement(Router.DefaultRoute, {name: 'name', handler: Handler});
+
+ ReactAddons.createElement(Router.DefaultRoute, null);
+ ReactAddons.createElement(Router.DefaultRoute, {name: 'name', handler: Handler});
}
}
@@ -165,6 +169,16 @@ class LinkTest {
query: {},
onClick: () => console.log(1)
});
+
+ ReactAddons.createElement(Router.Link, null);
+ ReactAddons.createElement(Router.Link, {to: 'home'});
+ ReactAddons.createElement(Router.Link, {
+ activeClassName: 'name',
+ to: 'home',
+ params: {},
+ query: {},
+ onClick: () => console.log(1)
+ });
}
}
@@ -181,6 +195,10 @@ class NotFoundRouteTest {
React.createElement(Router.NotFoundRoute, null);
React.createElement(Router.NotFoundRoute, {handler: Handler});
React.createElement(Router.NotFoundRoute, {handler: Handler, name: "home"});
+
+ ReactAddons.createElement(Router.NotFoundRoute, null);
+ ReactAddons.createElement(Router.NotFoundRoute, {handler: Handler});
+ ReactAddons.createElement(Router.NotFoundRoute, {handler: Handler, name: "home"});
}
}
@@ -197,6 +215,10 @@ class RedirectTest {
React.createElement(Router.Redirect, null);
React.createElement(Router.Redirect, {});
React.createElement(Router.Redirect, {path: 'a', from: 'a', to: 'b'});
+
+ ReactAddons.createElement(Router.Redirect, null);
+ ReactAddons.createElement(Router.Redirect, {});
+ ReactAddons.createElement(Router.Redirect, {path: 'a', from: 'a', to: 'b'});
}
}
@@ -215,6 +237,10 @@ class RouteTest {
React.createElement(Router.Route, null);
React.createElement(Router.Route, {});
React.createElement(Router.Route, {name: "home", path: "/", handler: Handler, ignoreScrollBehavior: true});
+
+ ReactAddons.createElement(Router.Route, null);
+ ReactAddons.createElement(Router.Route, {});
+ ReactAddons.createElement(Router.Route, {name: "home", path: "/", handler: Handler, ignoreScrollBehavior: true});
}
}
@@ -224,6 +250,9 @@ class RouteHandlerTest {
createElement() {
React.createElement(Router.RouteHandler, null);
React.createElement(Router.RouteHandler, {});
+
+ ReactAddons.createElement(Router.RouteHandler, null);
+ ReactAddons.createElement(Router.RouteHandler, {});
}
}
diff --git a/react-router/react-router.d.ts b/react-router/react-router.d.ts
index a54805815..9d0f63b96 100644
--- a/react-router/react-router.d.ts
+++ b/react-router/react-router.d.ts
@@ -4,11 +4,9 @@
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
+///
-declare module "react-router" {
-
- import React = require("react");
-
+declare module ReactRouter {
//
// Transition
// ----------------------------------------------------------------------
@@ -273,3 +271,83 @@ declare module "react-router" {
isActive(to: string, params?: {}, query?: {}): boolean;
}
}
+
+declare module "react-router" {
+ export = ReactRouter;
+}
+
+declare module React {
+ // for DefaultRoute
+ function createElement(
+ type: ReactRouter.DefaultRouteClass,
+ props: ReactRouter.DefaultRouteProp,
+ ...children: React.ReactNode[]): ReactRouter.DefaultRoute;
+
+ // for Link
+ function createElement(
+ type: ReactRouter.LinkClass,
+ props: ReactRouter.LinkProp,
+ ...children: React.ReactNode[]): ReactRouter.Link;
+
+ // for NotFoundRoute
+ function createElement(
+ type: ReactRouter.NotFoundRouteClass,
+ props: ReactRouter.NotFoundRouteProp,
+ ...children: React.ReactNode[]): ReactRouter.NotFoundRoute;
+
+ // for Redirect
+ function createElement(
+ type: ReactRouter.RedirectClass,
+ props: ReactRouter.RedirectProp,
+ ...children: React.ReactNode[]): ReactRouter.Redirect;
+
+ // for Route
+ function createElement(
+ type: ReactRouter.RouteClass,
+ props: ReactRouter.RouteProp,
+ ...children: React.ReactNode[]): ReactRouter.Route;
+
+ // for RouteHandler
+ function createElement(
+ type: ReactRouter.RouteHandlerClass,
+ props: ReactRouter.RouteHandlerProp,
+ ...children: React.ReactNode[]): ReactRouter.RouteHandler;
+}
+
+declare module "react/addons" {
+ // for DefaultRoute
+ function createElement(
+ type: ReactRouter.DefaultRouteClass,
+ props: ReactRouter.DefaultRouteProp,
+ ...children: React.ReactNode[]): ReactRouter.DefaultRoute;
+
+ // for Link
+ function createElement(
+ type: ReactRouter.LinkClass,
+ props: ReactRouter.LinkProp,
+ ...children: React.ReactNode[]): ReactRouter.Link;
+
+ // for NotFoundRoute
+ function createElement(
+ type: ReactRouter.NotFoundRouteClass,
+ props: ReactRouter.NotFoundRouteProp,
+ ...children: React.ReactNode[]): ReactRouter.NotFoundRoute;
+
+ // for Redirect
+ function createElement(
+ type: ReactRouter.RedirectClass,
+ props: ReactRouter.RedirectProp,
+ ...children: React.ReactNode[]): ReactRouter.Redirect;
+
+ // for Route
+ function createElement(
+ type: ReactRouter.RouteClass,
+ props: ReactRouter.RouteProp,
+ ...children: React.ReactNode[]): ReactRouter.Route;
+
+ // for RouteHandler
+ function createElement(
+ type: ReactRouter.RouteHandlerClass,
+ props: ReactRouter.RouteHandlerProp,
+ ...children: React.ReactNode[]): ReactRouter.RouteHandler;
+}