Fix some issues of #4410/issuecomment-110341203

This commit is contained in:
Yuichi Murata
2015-07-12 21:27:57 +09:00
parent c7cbdd267b
commit 4ca5b84c23
2 changed files with 78 additions and 40 deletions
+60
View File
@@ -328,3 +328,63 @@ class TransitionTest {
};
}
}
// Context
class ContextTest {
v: Router.Context
makePath() {
var v1: string = this.v.makePath('home');
var v2: string = this.v.makePath('home', {p1: 1});
var v3: string = this.v.makePath('home', {p1: 1}, {q1: 1});
}
makeHref() {
var v1: string = this.v.makeHref('home');
var v2: string = this.v.makeHref('home', {p1: 1});
var v3: string = this.v.makeHref('home', {p1: 1}, {q1: 1});
}
transitionTo() {
var v1: void = this.v.transitionTo('home');
var v2: void = this.v.transitionTo('home', {p1: 1});
var v3: void = this.v.transitionTo('home', {p1: 1}, {q1: 1});
}
replaceWith() {
var v1: void = this.v.replaceWith('home');
var v2: void = this.v.replaceWith('home', {p1: 1});
var v3: void = this.v.replaceWith('home', {p1: 1}, {q1: 1});
}
goBack() {
var v: void = this.v.goBack();
}
getCurrentPath() {
var v: string = this.v.getCurrentPath();
}
getCurrentRoutes() {
var v: Router.Route[] = this.v.getCurrentRoutes();
}
getCurrentPathname() {
var v: string = this.v.getCurrentPathname();
}
getCurrentParams() {
var v: {} = this.v.getCurrentParams();
}
getCurrentQuery() {
var v: {} = this.v.getCurrentQuery();
}
isActive() {
var v1: boolean = this.v.isActive('home');
var v2: boolean = this.v.isActive('home', {p1: 1});
var v3: boolean = this.v.isActive('home', {p1: 1}, {q1: 1});
}
}
+18 -40
View File
@@ -140,7 +140,7 @@ declare module "react-router" {
getRouteDepth(): number;
createChildRouteHandler(props: {}): RouteHandler;
}
interface RouteHandlerClass extends React.ReactElement<RouteHandlerProp> {}
interface RouteHandlerClass extends React.ComponentClass<RouteHandlerProp> {}
var Link: LinkClass;
var RouteHandler: RouteHandlerClass;
@@ -253,45 +253,23 @@ declare module "react-router" {
length: number;
}
var History: History;
}
declare module "react" {
import ReactRouter = require("react-router");
// for DefaultRoute
function createElement(
type: ReactRouter.DefaultRouteClass,
props: ReactRouter.DefaultRouteProp,
...children: ReactNode[]): ReactRouter.DefaultRoute;
// for Link
function createElement(
type: ReactRouter.LinkClass,
props: ReactRouter.LinkProp,
...children: ReactNode[]): ReactRouter.Link;
// for NotFoundRoute
function createElement(
type: ReactRouter.NotFoundRouteClass,
props: ReactRouter.NotFoundRouteProp,
...children: ReactNode[]): ReactRouter.NotFoundRoute;
// for Redirect
function createElement(
type: ReactRouter.RedirectClass,
props: ReactRouter.RedirectProp,
...children: ReactNode[]): ReactRouter.Redirect;
// for Route
function createElement(
type: ReactRouter.RouteClass,
props: ReactRouter.RouteProp,
...children: ReactNode[]): ReactRouter.Route;
// for RouteHandler
function createElement(
type: ReactRouter.RouteHandlerClass,
props: ReactRouter.RouteHandlerProp,
...children: ReactNode[]): ReactRouter.RouteHandler;
//
// Context
// ----------------------------------------------------------------------
interface Context {
makePath(to: string, params?: {}, query?: {}): string;
makeHref(to: string, params?: {}, query?: {}): string;
transitionTo(to: string, params?: {}, query?: {}): void;
replaceWith(to: string, params?: {}, query?: {}): void;
goBack(): void;
getCurrentPath(): string;
getCurrentRoutes(): Route[];
getCurrentPathname(): string;
getCurrentParams(): {};
getCurrentQuery(): {};
isActive(to: string, params?: {}, query?: {}): boolean;
}
}