Browse Source

无JIRA router类型

es6
zsmj 3 years ago
parent
commit
e50525a8db
  1. 199
      typescript/router/router.ts

199
typescript/router/router.ts

@ -1,6 +1,205 @@
type Component = any
type Dictionary<T> = { [key: string]: T }
type ErrorHandler = (err: Error) => void
export type RouterMode = "hash" | "history" | "abstract"
export type RawLocation = string | Location
export type RedirectOption = RawLocation | ((to: Route) => RawLocation)
export type NavigationGuardNext = (
to?: RawLocation | false | void,
) => void
export type NavigationGuard = (
to: Route,
from: Route,
next: NavigationGuardNext,
) => any
interface _History {
current: Route;
}
export declare class VueRouter {
constructor(options?: Obj)
mode: RouterMode;
currentRoute: Route;
history: _History;
beforeEach(guard: NavigationGuard): Function
beforeResolve(guard: NavigationGuard): Function
afterEach(hook: (to: Route, from: Route) => any): Function
push(location: RawLocation): Promise<Route>
replace(location: RawLocation): Promise<Route>
push(
location: RawLocation,
onComplete?: Function,
onAbort?: ErrorHandler,
): void
replace(
location: RawLocation,
onComplete?: Function,
onAbort?: ErrorHandler,
): void
go(n: number): void
back(): void
forward(): void
match(raw: RawLocation, current?: Route, redirectedFrom?: Location): Route
getMatchedComponents(to?: RawLocation | Route): Component[]
onReady(cb: Function, errorCb?: ErrorHandler): void
onError(cb: ErrorHandler): void
addRoutes(routes: RouteConfig[]): void
addRoute(parent: string, route: RouteConfig): void
addRoute(route: RouteConfig): void
getRoutes(): RouteRecordPublic[]
resolve(
to: RawLocation,
current?: Route,
append?: boolean,
): {
location: Location
route: Route
href: string
// backwards compat
normalizedTo: Location
resolved: Route
}
}
type RoutePropsFunction = (route: Route) => Object
interface _RouteConfigBase {
path: string;
name?: string;
children?: RouteConfig[];
redirect?: RedirectOption;
alias?: string | string[];
meta?: RouteMeta;
beforeEnter?: NavigationGuard;
caseSensitive?: boolean;
pathToRegexpOptions?: PathToRegexpOptions;
}
interface RouteConfigSingleView extends _RouteConfigBase {
component?: Component;
props?: boolean | Object | RoutePropsFunction;
}
interface RouteConfigMultipleViews extends _RouteConfigBase {
components?: Dictionary<Component>;
props?: Dictionary<boolean | Object | RoutePropsFunction>;
}
type RouteConfig = RouteConfigSingleView | RouteConfigMultipleViews
interface PathToRegexpOptions {
sensitive?: boolean;
strict?: boolean;
end?: boolean;
}
interface _RouteConfigBase {
path: string;
name?: string;
children?: RouteConfig[];
redirect?: RedirectOption;
alias?: string | string[];
meta?: RouteMeta;
beforeEnter?: NavigationGuard;
caseSensitive?: boolean;
pathToRegexpOptions?: PathToRegexpOptions;
}
interface RouteRecord {
path: string;
regex: RegExp;
components: Dictionary<Component>;
name?: string;
parent?: RouteRecord;
redirect?: RedirectOption;
matchAs?: string;
meta: RouteMeta;
beforeEnter?: (
route: Route,
redirect: (location: RawLocation) => void,
next: () => void,
) => any;
props:
| boolean
| Object
| RoutePropsFunction
| Dictionary<boolean | Object | RoutePropsFunction>;
}
interface RouteRecordPublic {
path: string;
components: Dictionary<Component>;
name?: string;
redirect?: RedirectOption;
meta: any;
beforeEnter?: (
route: Route,
redirect: (location: RawLocation) => void,
next: () => void,
) => any;
props:
| boolean
| Object
| RoutePropsFunction
| Dictionary<boolean | Object | RoutePropsFunction>;
}
interface Location {
name?: string;
path?: string;
hash?: string;
query?: Dictionary<string | (string | null)[] | null | undefined>;
params?: Dictionary<string>;
append?: boolean;
replace?: boolean;
}
interface Route {
path: string;
name?: string | null;
hash: string;
query: Dictionary<string | (string | null)[]>;
params: Dictionary<string>;
fullPath: string;
matched: RouteRecord[];
redirectedFrom?: string;
meta?: RouteMeta;
}
interface RouteMeta extends Record<string | number | symbol, any> {
}
export declare class Router {
constructor(op: { [key: string]: any });
static $router: VueRouter;
route(route: string, callback: Function): this;
route(route: string, name: string, callback?: Function): this;

Loading…
Cancel
Save