我正在使用NextJS,并需要扩展他们的AppProps
类型,其中包含我自己添加的可选参数Layout
。但是AppProps
类型由许多其他类型组成,例如:
AppProps:
export declare type AppProps<P = {}> = AppPropsType<Router, P>;
AppPropsType:
export declare type AppPropsType<R extends NextRouter = NextRouter, P = {}> = AppInitialProps & {
Component: NextComponentType<NextPageContext, any, P>;
router: R;
__N_SSG?: boolean;
__N_SSP?: boolean;
};
下一个组件类型:
export declare type NextComponentType<C extends BaseContext = NextPageContext, IP = {}, P = {}> = ComponentType<P> & {
/**
* Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.
* Make sure to return plain `Object` without using `Date`, `Map`, `Set`.
* @param ctx Context of `page`
*/
getInitialProps?(context: C): IP | Promise<IP>;
};
我希望能够从我的_app.tsx
文件中,通过类似以下方式的代码向Component
添加Layout
:
Component: {
Layout?: React.FunctionComponent;
};
是否可以从AppProps
中实现这个功能,还是需要先扩展/交叉AppPropsType
与Layout
,然后重新声明使用扩展的AppPropsType
的AppProps
?