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

ReactのProps必須・オプショナル指定を完全解説!初心者でもわかる型安全なProps管理

Propsの必須・オプショナル指定の方法
Propsの必須・オプショナル指定の方法

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

生徒

「ReactでPropsって必ず全部渡さないといけないんですか?」

先生

「いいえ、必ずしもそうではありません。Propsには必須のものと、渡さなくてもよいオプショナルなものがあります。」

生徒

「必須とオプショナルの違いってどうやって決めるんですか?」

先生

「TypeScriptを使うと、必須かオプショナルかを型として明確に書けるんです。具体例を見ながら学んでみましょう!」

1. Propsの必須とオプショナルとは?

1. Propsの必須とオプショナルとは?
1. Propsの必須とオプショナルとは?

Reactでは、コンポーネントに値を渡す仕組みとしてProps(プロップス)があります。その中で「必須」とは、必ず渡さなければならない値のことです。一方で「オプショナル」とは、渡さなくてもエラーにならない値です。日常生活でたとえると、カレーを作るときの「ご飯」は必須ですが、「福神漬け」はあってもなくても良いオプショナルな存在と考えると分かりやすいです。

2. TypeScriptで必須Propsを指定する方法

2. TypeScriptで必須Propsを指定する方法
2. TypeScriptで必須Propsを指定する方法

TypeScriptでは、Propsの型を定義するときに何も記号をつけなければ、そのプロパティは必須になります。たとえば「名前」を必ず表示したい場合、次のように書きます。


type UserProps = {
  name: string; // 必須
};

function UserCard(props: UserProps) {
  return <h1>こんにちは、{props.name}さん</h1>;
}

function App() {
  return (
    <div>
      <UserCard name="太郎" /> 
      {/* nameを渡さないとエラーになる */}
    </div>
  );
}
(画面に「こんにちは、太郎さん」と表示されます)

3. TypeScriptでオプショナルPropsを指定する方法

3. TypeScriptでオプショナルPropsを指定する方法
3. TypeScriptでオプショナルPropsを指定する方法

オプショナルPropsは、型定義の後ろに「?」をつけます。これで「渡してもいいし、渡さなくてもいい」状態になります。たとえば「年齢」をオプショナルにすると次のように書けます。


type UserProps = {
  name: string;     // 必須
  age?: number;     // オプショナル
};

function UserCard(props: UserProps) {
  return (
    <div>
      <h1>こんにちは、{props.name}さん</h1>
      {props.age && <p>{props.age}歳です</p>}
    </div>
  );
}

function App() {
  return (
    <div>
      <UserCard name="太郎" age={20} />
      <UserCard name="花子" />
    </div>
  );
}
(1つ目は「こんにちは、太郎さん」と「20歳です」と表示され、2つ目は「こんにちは、花子さん」とだけ表示されます)

4. デフォルト値を設定する方法

4. デフォルト値を設定する方法
4. デフォルト値を設定する方法

オプショナルPropsには、デフォルトの値を設定することもできます。これにより、Propsを渡さなかった場合でもあらかじめ決められた値が表示されます。


type UserProps = {
  name: string;
  age?: number;
};

function UserCard({ name, age = 18 }: UserProps) {
  return (
    <div>
      <h1>こんにちは、{name}さん</h1>
      <p>{age}歳です</p>
    </div>
  );
}

function App() {
  return (
    <div>
      <UserCard name="太郎" age={25} />
      <UserCard name="花子" />
    </div>
  );
}
(1つ目は「こんにちは、太郎さん」「25歳です」と表示され、2つ目は「こんにちは、花子さん」「18歳です」と表示されます)

5. 必須とオプショナルを使い分けるポイント

5. 必須とオプショナルを使い分けるポイント
5. 必須とオプショナルを使い分けるポイント

では、どのように必須とオプショナルを決めればよいのでしょうか。基本的には「その値がないと意味が通じない」場合は必須にし、それ以外はオプショナルにすると良いです。たとえば「ユーザー名」は必須ですが、「プロフィール画像」はオプショナルでも大丈夫です。必須とオプショナルを適切に使い分けることで、Reactのコンポーネントは柔軟で使いやすくなります。

6. Props必須・オプショナル指定のメリット

6. Props必須・オプショナル指定のメリット
6. Props必須・オプショナル指定のメリット

Propsを必須・オプショナルで分けることには大きなメリットがあります。

  • エラーを未然に防げる:必須Propsを忘れるとエラーで気づけます。
  • コードの読みやすさ向上:オプショナルにすることで、柔軟に使えると分かります。
  • 開発の安心感:型安全と組み合わせることで、Reactアプリを安心して作成できます。
カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.5
Java&Spring記事人気No5
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactのフォーム処理でよくあるエラーと解決法を完全解説!初心者でも安心して学べるReact入門