Adds query to other cross cutting interfaces

This commit is contained in:
Kevin Welcher
2018-08-13 15:55:05 -04:00
parent 327d5763a6
commit bdf3eeeae8
3 changed files with 12 additions and 12 deletions

16
types/next/app.d.ts vendored
View File

@@ -1,19 +1,19 @@
import * as React from "react";
import { NextContext } from ".";
import { RouterProps } from "./router";
import { RouterProps, DefaultQuery } from "./router";
export interface AppComponentProps {
export interface AppComponentProps<Q = DefaultQuery> {
Component: React.ComponentType<any>;
router: RouterProps;
router: RouterProps<Q>;
pageProps: any;
}
export interface AppComponentContext {
export interface AppComponentContext<Q = DefaultQuery> {
Component: React.ComponentType<any>;
router: RouterProps;
ctx: NextContext;
router: RouterProps<Q>;
ctx: NextContext<Q>;
}
export class Container extends React.Component {}
export class Container extends React.Component { }
export default class App<TProps = {}> extends React.Component<TProps & AppComponentProps> {}
export default class App<TProps = {}, Q = DefaultQuery> extends React.Component<TProps & AppComponentProps<Q>> { }

View File

@@ -43,10 +43,10 @@ declare namespace next {
isServer?: boolean;
}
type NextSFC<TProps = {}> = NextStatelessComponent<TProps>;
interface NextStatelessComponent<TProps = {}>
type NextSFC<TProps = {}, Q = QueryStringMapObject> = NextStatelessComponent<TProps, Q>;
interface NextStatelessComponent<TProps = {}, Q = QueryStringMapObject>
extends React.StatelessComponent<TProps> {
getInitialProps?: (ctx: NextContext) => Promise<TProps>;
getInitialProps?: (ctx: NextContext<Q>) => Promise<TProps>;
}
type UrlLike = url.UrlObject | url.Url;

View File

@@ -26,7 +26,7 @@ export type PopStateCallback = (state: any) => boolean | undefined;
export type RouterCallback = () => void;
interface DefaultQuery {
export interface DefaultQuery {
[key: string]:
| boolean
| boolean[]