0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

React + TypeScriptのButtonコンポーネントのpropsで使う型定義

Posted at

React + JavaScript

<Button className="..." onClick={...} ...>アカウントを作成</Button>
export default function Button({ children, ...props }) {
    return (
        <button {...props}>{children}</button>
    );
}

React + JavaScriptでは上記のように記述してButtonコンポーネントを作成しています。
propsにはdisabledonClickなど、buttonタグで使用する要素が入ってきます。

React + TypeScript

TypeScriptには型が存在します。
React + TypeScriptでもJavaScriptと同様にButtonコンポーネントを作成したいのですが、その際の型の記述はどうしたら良いでしょうか。

export type ButtonType = React.ButtonHTMLAttributes<HTMLButtonElement> & {
    children: React.ReactNode
}

※詳しくはこちらを参照

この型指定により、通常のbuttonタグと同様、<Button>の中で属性を指定することができるようになります。

あとはButtonコンポーネントの引数に型を指定してあげれば、解決します。

export default function Button({ children, ...props }: ButtonType) {
    return (
        <button {...props}>{children}</button>
    );
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?