diff --git a/packages/next/client/link.tsx b/packages/next/client/link.tsx index aa7670d53ca0b..874aea5f74260 100644 --- a/packages/next/client/link.tsx +++ b/packages/next/client/link.tsx @@ -27,14 +27,60 @@ type OptionalKeys = { }[keyof T] type InternalLinkProps = { + /** + * The path or URL to navigate to. It can also be an object. + * + * @example https://nextjs.org/docs/api-reference/next/link#with-url-object + */ href: Url + /** + * Optional decorator for the path that will be shown in the browser URL bar. Before Next.js 9.5.3 this was used for dynamic routes, check our [previous docs](https://nextjs.org/docs/tag/v9.5.2/api-reference/next/link#dynamic-routes) to see how it worked. Note: when this path differs from the one provided in `href` the previous `href`/`as` behavior is used as shown in the [previous docs](https://nextjs.org/docs/tag/v9.5.2/api-reference/next/link#dynamic-routes). + */ as?: Url + /** + * Replace the current `history` state instead of adding a new url into the stack. + * + * @defaultValue `false` + */ replace?: boolean + /** + * Whether to override the default scroll behavior + * + * @example https://nextjs.org/docs/api-reference/next/link#disable-scrolling-to-the-top-of-the-page + * + * @defaultValue `true` + */ scroll?: boolean + /** + * Update the path of the current page without rerunning [`getStaticProps`](/docs/basic-features/data-fetching/get-static-props.md), [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md) or [`getInitialProps`](/docs/api-reference/data-fetching/get-initial-props.md). + * + * @defaultValue `false` + */ shallow?: boolean + /** + * Forces `Link` to send the `href` property to its child. + * + * @defaultValue `false` + */ passHref?: boolean + /** + * Prefetch the page in the background. + * Any `` that is in the viewport (initially or through scroll) will be preloaded. + * Prefetch can be disabled by passing `prefetch={false}`. When `prefetch` is set to `false`, prefetching will still occur on hover. Pages using [Static Generation](/docs/basic-features/data-fetching/get-static-props.md) will preload `JSON` files with the data for faster page transitions. Prefetching is only enabled in production. + * + * @defaultValue `true` + */ prefetch?: boolean + /** + * The active locale is automatically prepended. `locale` allows for providing a different locale. + * When `false` `href` has to include the locale as the default behavior is disabled. + */ locale?: string | false + /** + * Enable legacy link behaviour. + * @defaultValue `true` + * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7 + */ legacyBehavior?: boolean // e: any because as it would otherwise overlap with existing types /** @@ -153,6 +199,9 @@ type LinkPropsReal = React.PropsWithChildren< LinkProps > +/** + * React Component that enables client-side transitions between routes. + */ const Link = React.forwardRef( function LinkComponent(props, forwardedRef) { if (process.env.NODE_ENV !== 'production') {