カテゴリ: TypeScript 更新日: 2026/01/04

TypeScriptでOptional Chaining(?.)とNullish Coalescing(??)を使う方法をやさしく解説

TypeScriptでOptional Chaining(?.)とNullish Coalescing(??)を使う方法
TypeScriptでOptional Chaining(?.)とNullish Coalescing(??)を使う方法

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

生徒

「TypeScriptのコードを見ていると、?.とか??という記号が出てきて、何をしているのか全然わかりません…」

先生

「それはOptional ChainingとNullish Coalescingという書き方ですね。どちらもエラーを防ぎ、プログラムを安全に書くための仕組みです。」

生徒

「エラーを防ぐってどういうことですか?パソコンを触ったことがなくても理解できますか?」

先生

「もちろんです。身近なたとえを使って、ひとつずつ丁寧に説明していきましょう。」

1. Optional Chaining(?.)とは何か?

1. Optional Chaining(?.)とは何か?
1. Optional Chaining(?.)とは何か?

Optional Chaining(オプショナルチェイニング)は、TypeScriptやJavaScript(ES6/ESNext)で使える書き方で、 「値が存在しないかもしれない場合でも、安全にプロパティへアクセスする方法」です。

プログラムでは、データが「存在しない」状態になることがあります。これを専門用語で null(ヌル)undefined(アンディファインド)と呼びます。 nullは「中身が空」、undefinedは「そもそも用意されていない」という意味だと考えてください。

例えるなら、引き出しの中に物が入っているか分からない状態で、いきなり手を突っ込むと危ないですよね。 Optional Chainingは「中に物があるか確認しながら、そっと手を入れる」ようなイメージです。

2. Optional Chainingを使わない場合の問題点

2. Optional Chainingを使わない場合の問題点
2. Optional Chainingを使わない場合の問題点

Optional Chainingを使わない場合、存在しないデータにアクセスすると、 プログラムはエラーを起こして止まってしまいます。 エラーとは、パソコンが「それはできません」と作業を中断する状態のことです。


type User = {
    name: string;
    address?: {
        city: string;
    };
};

const user: User = { name: "太郎" };

// エラーが起きる可能性がある書き方
console.log(user.address.city);

この例では、addressが存在しない可能性があります。 それなのにcityを直接取り出そうとすると、「そんな情報はありません」とエラーになります。

3. Optional Chaining(?.)の基本的な使い方

3. Optional Chaining(?.)の基本的な使い方
3. Optional Chaining(?.)の基本的な使い方

Optional Chainingでは、アクセスしたい場所の前に?.を付けます。 これにより、「もし存在していれば使う、なければ何もしない」という安全な動きになります。


console.log(user.address?.city);

この書き方なら、addressが存在しない場合でもエラーになりません。 結果はundefinedになり、プログラムはそのまま続行されます。


undefined

Optional Chainingは、初心者がつまずきやすい「エラーで止まる問題」を減らしてくれる、 とても重要なESNextの機能です。

4. Nullish Coalescing(??)とは何か?

4. Nullish Coalescing(??)とは何か?
4. Nullish Coalescing(??)とは何か?

Nullish Coalescing(ヌリッシュコアレッシング)は、 nullやundefinedだった場合に、代わりの値を使う仕組みです。

例えば、名前が登録されていない人に対して、 「名前未設定」と表示したい場合がありますよね。 そのようなときに使うのが??です。

5. Nullish Coalescing(??)の基本例

5. Nullish Coalescing(??)の基本例
5. Nullish Coalescing(??)の基本例

??は「左側がnullまたはundefinedなら、右側を使う」という意味です。 0や空文字は正常な値として扱われる点がポイントです。


const userName: string | null = null;

const displayName = userName ?? "名前未設定";

console.log(displayName);

名前未設定

このように、データが存在しない場合でも、 画面表示や処理を安定させることができます。

6. Optional ChainingとNullish Coalescingを組み合わせる

6. Optional ChainingとNullish Coalescingを組み合わせる
6. Optional ChainingとNullish Coalescingを組み合わせる

実際のTypeScript開発では、Optional ChainingとNullish Coalescingを 組み合わせて使うことがよくあります。 これにより、安全で読みやすいコードになります。


const cityName = user.address?.city ?? "不明";

console.log(cityName);

不明

このコードは、「住所があり、都市名があればそれを使う。 なければ『不明』と表示する」という意味になります。

7. 初心者が混乱しやすいポイント

7. 初心者が混乱しやすいポイント
7. 初心者が混乱しやすいポイント

初心者の方がよく混乱するのは、 「なぜif文でチェックしなくていいのか」という点です。 Optional ChainingとNullish Coalescingは、 その確認作業を短く、分かりやすく書くための仕組みです。

これらはTypeScriptとES6/ESNextの連携を理解するうえで重要な要素であり、 安全で壊れにくいプログラムを書くための基本知識になります。

カテゴリの一覧へ
新着記事
New1
JavaScript
PostgreSQLでインデックスが使われない理由を徹底解説!初心者でもわかるデータベース高速化
New2
JavaScript
JavaScriptの条件式で型の違いに注意しよう!厳密比較と抽象比較
New3
JavaScript
JavaScriptの条件式におけるnull・undefined判定のコツ!初心者でもわかる判定方法ガイド
New4
Claude Code
Claude Codeのスペック駆動開発とは?初心者向けに流れを解説
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのライブラリとは?標準ライブラリと外部ライブラリの違いと使い方
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptで最初に覚えたい基本構文まとめ
No.5
Java&Spring記事人気No5
Claude Code
macOSにClaude Codeをインストールする方法と必要な準備
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptでブラウザのタブ間通信を完全解説!初心者向けBroadcastChannel API入門
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでAPIレスポンスをバリデーションする手法!安全な型チェックとZodによるデータ検証の基本
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptで定数を定義する方法!変更されない変数の書き方と命名ルール