From 861257bdfc0b5b210d28ccf9ad4c2600533586b8 Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 12 Mar 2020 14:11:15 +0100 Subject: [PATCH] Generic form of GetStaticProps and GetServerSideProps (#10856) * Generic form of GetStaticProps and GetServerSideProps * Oops, fix type! * Add constraint for P * Update packages/next/types/index.d.ts Co-authored-by: Joe Haddad Co-authored-by: Joe Haddad --- packages/next/types/index.d.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/next/types/index.d.ts b/packages/next/types/index.d.ts index ae8bbe80665dc1b..08767b0d1956489 100644 --- a/packages/next/types/index.d.ts +++ b/packages/next/types/index.d.ts @@ -64,12 +64,14 @@ export { NextApiHandler, } -export type GetStaticProps = (ctx: { +export type GetStaticProps< + P extends { [key: string]: any } = { [key: string]: any } +> = (ctx: { params?: ParsedUrlQuery preview?: boolean previewData?: any }) => Promise<{ - props: { [key: string]: any } + props: P revalidate?: number | boolean }> @@ -78,13 +80,15 @@ export type GetStaticPaths = () => Promise<{ fallback: boolean }> -export type GetServerSideProps = (context: { +export type GetServerSideProps< + P extends { [key: string]: any } = { [key: string]: any } +> = (context: { req: IncomingMessage res: ServerResponse params?: ParsedUrlQuery query: ParsedUrlQuery preview?: boolean previewData?: any -}) => Promise<{ [key: string]: any }> +}) => Promise<{ props: P }> export default next