From a33cbc89706886b85ce6445ce7dd93fb3e7e5abd Mon Sep 17 00:00:00 2001 From: Mikey Binns Date: Mon, 1 Apr 2024 17:58:54 +0100 Subject: [PATCH 1/2] add docs about component props --- packages/components/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/components/README.md b/packages/components/README.md index f3e4399fe3d51..5ef6ec08d1292 100644 --- a/packages/components/README.md +++ b/packages/components/README.md @@ -57,6 +57,19 @@ const Example = () => { }; ``` +### Typescript + +This package exposes its own types for the components it exports, however it doesn't export its own types for component props. If you need to extract the props type, please use `React.ComponentProps` to get the types from the element. + +```tsx +import type { ComponentProps } from "react"; +import { Button } from '@wordpress/components'; + +export default function MyButton(props: ComponentProps) { + return ; +} +``` + ## Docs & examples You can browse the components docs and examples at [https://wordpress.github.io/gutenberg/](https://wordpress.github.io/gutenberg/) From d5b6f49b7f54ca42437deeb32212e5ccca483734 Mon Sep 17 00:00:00 2001 From: Mikey Binns <38146638+mikeybinns@users.noreply.github.com> Date: Tue, 2 Apr 2024 23:21:56 +0100 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Lena Morita --- packages/components/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/components/README.md b/packages/components/README.md index 5ef6ec08d1292..df92e8db57be4 100644 --- a/packages/components/README.md +++ b/packages/components/README.md @@ -57,16 +57,16 @@ const Example = () => { }; ``` -### Typescript +### TypeScript This package exposes its own types for the components it exports, however it doesn't export its own types for component props. If you need to extract the props type, please use `React.ComponentProps` to get the types from the element. ```tsx -import type { ComponentProps } from "react"; +import type { ComponentProps } from 'react'; import { Button } from '@wordpress/components'; -export default function MyButton(props: ComponentProps) { - return ; +export default function MyButton( props: ComponentProps< typeof Button > ) { + return ; } ```