カテゴリ: 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のカスタムフックで依存関係を扱う方法を解説!初心者でもわかる依存関係管理
New2
Next.js
Next.js Client Componentsでフォーム入力を扱う実装パターン完全ガイド!初心者でもわかるNext.jsフォーム処理
New3
React
Fetch APIでPOSTリクエストを送る方法を完全解説!初心者でもわかるReactのデータ送信
New4
React
useEffectでクリーンアップ関数を使う方法をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.2
Java&Spring記事人気No2
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.3
Java&Spring記事人気No3
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.6
Java&Spring記事人気No6
React
useEffectでクリーンアップ関数を使う方法をやさしく解説
No.7
Java&Spring記事人気No7
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介