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; +}