カテゴリ: React 更新日: 2026/01/28

ReactのPropsで関数を渡すときの型定義を完全ガイド!初心者でもわかる型安全なProps管理

Propsで関数を渡すときの型定義
Propsで関数を渡すときの型定義

先生と生徒の会話形式で理解しよう

生徒

「Reactで関数をPropsとして渡せるんですか?」

先生

「はい、関数もPropsとして渡せます。これを使うと、親コンポーネントから子コンポーネントに動作を指示できるんです。」

生徒

「どういうときに関数を渡すんですか?」

先生

「例えばボタンをクリックしたときの処理を親コンポーネントに任せたいときなどに便利です。実際のコードを見ながら学んでみましょう!」

1. 関数をPropsで渡す基本

1. 関数をPropsで渡す基本
1. 関数をPropsで渡す基本

Reactでは、Propsを使って文字や数値を渡すだけでなく、関数を渡すこともできます。これにより、子コンポーネントは「ボタンが押されたよ!」と親コンポーネントに知らせることができます。


type ButtonProps = {
  onClick: () => void;
};

function CustomButton({ onClick }: ButtonProps) {
  return <button onClick={onClick}>クリック</button>;
}

function App() {
  const handleClick = () => {
    alert("ボタンが押されました!");
  };

  return (
    <div>
      <CustomButton onClick={handleClick} />
    </div>
  );
}
(画面に「クリック」と書かれたボタンが表示され、押すとアラートで「ボタンが押されました!」と表示されます)

2. 型定義のポイント

2. 型定義のポイント
2. 型定義のポイント

型定義では「関数がどんな引数を受け取り、どんな値を返すか」を書きます。例えば、引数がなく戻り値もない場合は() => voidと定義します。

もし文字列を受け取って何も返さない関数なら、(text: string) => voidとします。

3. 引数つき関数をPropsで渡す

3. 引数つき関数をPropsで渡す
3. 引数つき関数をPropsで渡す

関数には引数を設定できます。例えば「入力した名前を親に渡す」ようなケースです。


type InputProps = {
  onSend: (value: string) => void;
};

function TextInput({ onSend }: InputProps) {
  return (
    <input
      type="text"
      onChange={(e) => onSend(e.target.value)}
      placeholder="名前を入力"
    />
  );
}

function App() {
  const handleSend = (value: string) => {
    console.log("入力された名前:", value);
  };

  return (
    <div>
      <TextInput onSend={handleSend} />
    </div>
  );
}
(入力欄に文字を入力すると、その内容がコンソールに表示されます)

4. 複数の引数を持つ関数

4. 複数の引数を持つ関数
4. 複数の引数を持つ関数

Propsの関数は複数の引数も受け取れます。例えば「ユーザー名」と「年齢」を渡すような場合です。


type UserFormProps = {
  onSubmit: (name: string, age: number) => void;
};

function UserForm({ onSubmit }: UserFormProps) {
  return (
    <button onClick={() => onSubmit("太郎", 20)}>
      ユーザー送信
    </button>
  );
}

function App() {
  const handleUserSubmit = (name: string, age: number) => {
    alert(`${name} (${age}歳) が送信されました!`);
  };

  return (
    <div>
      <UserForm onSubmit={handleUserSubmit} />
    </div>
  );
}
(ボタンを押すと「太郎 (20歳) が送信されました!」とアラートに表示されます)

5. 関数Propsを使うメリット

5. 関数Propsを使うメリット
5. 関数Propsを使うメリット

関数をPropsで渡すと、以下のようなメリットがあります。

  • 親子コンポーネント間の連携:子から親にイベントを伝えられる。
  • 柔軟な再利用:同じコンポーネントに違う関数を渡すだけで挙動を変えられる。
  • 型安全で安心:間違った引数を渡すとコンパイル時にエラーで知らせてくれる。

6. 注意点

6. 注意点
6. 注意点

関数Propsを使うときは、アロー関数() => { }を使うのがおすすめです。無名関数をそのまま渡すよりも、型が明確になりやすくコードが読みやすくなります。

カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方
No.8
Java&Spring記事人気No8
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!