【发布时间】:2021-01-18 01:58:56
【问题描述】:
我正在使用 NextJS,需要使用我自己添加的可选参数 Layout 来扩展他们的 AppProps 类型。但是 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,我希望能够将Layout 添加到Component,例如:
Component: {
Layout?: React.FunctionComponent;
};
有没有办法从AppProps 做到这一点,或者我需要先将AppPropsType 与Layout 扩展/相交,然后重新声明我自己的AppProps,它使用扩展的AppPropsType?
【问题讨论】:
标签: javascript typescript types extend