カテゴリ: TypeScript 更新日: 2025/12/29

TypeScriptで分割代入(destructuring)を安全に使う方法

TypeScriptで分割代入(destructuring)を安全に使う方法
TypeScriptで分割代入(destructuring)を安全に使う方法

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

生徒

「TypeScriptで分割代入って聞いたんですが、そもそも何をするものなんですか?」

先生

「分割代入は、箱の中身を一つずつ取り出すように、配列やオブジェクトから値を取り出す書き方です。」

生徒

「便利そうですが、間違えて使うとエラーになりませんか?」

先生

「その通りです。だからこそ、TypeScriptでは“安全に使う方法”を知ることが大切なんですよ。」

1. 分割代入(destructuring)とは?

1. 分割代入(destructuring)とは?
1. 分割代入(destructuring)とは?

TypeScriptの分割代入(destructuring)とは、配列やオブジェクトに入っている値を、 まとめて取り出して変数に代入できる書き方のことです。 とても長い名前ですが、意味はシンプルです。

たとえば、お弁当箱に「ごはん」「おかず」「デザート」が入っているとします。 普通の書き方では、ふたを開けて一つずつ取り出しますが、 分割代入を使うと「ごはんはこの皿、おかずはこの皿」というように、 一気に分けて取り出せます。

JavaScript(ES6)から使える機能で、TypeScriptでも同じように使えます。 さらにTypeScriptではがあるため、安全性を高めることができます。

2. 配列の分割代入の基本

2. 配列の分割代入の基本
2. 配列の分割代入の基本

まずは配列の分割代入から見てみましょう。 配列とは、順番に値が並んだ箱の集まりです。


const fruits = ["りんご", "みかん", "バナナ"];
const [first, second] = fruits;

console.log(first);
console.log(second);

りんご
みかん

この例では、配列の1番目と2番目の値を、それぞれ別の変数に代入しています。 配列の順番がとても重要なのがポイントです。

3. オブジェクトの分割代入の基本

3. オブジェクトの分割代入の基本
3. オブジェクトの分割代入の基本

次にオブジェクトの分割代入です。 オブジェクトは「名前と値がセット」になったデータです。


const user = {
    name: "太郎",
    age: 20
};

const { name, age } = user;
console.log(name);
console.log(age);

太郎
20

オブジェクトの場合は、名前が同じプロパティから値を取り出します。 順番は関係ありません。

4. 分割代入が危険になるケース

4. 分割代入が危険になるケース
4. 分割代入が危険になるケース

分割代入は便利ですが、注意しないとエラーの原因になります。 代表的なのが「値が存在しない場合」です。


const numbers: number[] = [];
const [value] = numbers;

console.log(value);

この場合、配列が空なので値が存在しません。 実行すると、undefinedという「中身がない状態」になります。 初心者の方は、これに気づかず処理を続けてしまうことが多いです。

5. 安全に使うための初期値(デフォルト値)

5. 安全に使うための初期値(デフォルト値)
5. 安全に使うための初期値(デフォルト値)

分割代入を安全に使うための基本は初期値を設定することです。 初期値とは「もし値がなかったら、これを使う」という保険のようなものです。


const numbers: number[] = [];
const [value = 0] = numbers;

console.log(value);

0

値が存在しない場合でも、決めた値が入るので安心です。 プログラミングでは「何もない状態」を想定することがとても大切です。

6. オブジェクト分割代入と型の安全性

6. オブジェクト分割代入と型の安全性
6. オブジェクト分割代入と型の安全性

TypeScriptでは、オブジェクトの分割代入とを組み合わせることで、 さらに安全に書けます。 型とは「この箱には何が入るか」をあらかじめ決めるルールです。


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

const user: User = { name: "花子" };
const { age = 18 } = user;

console.log(age);

18

age?は「入ってもいいし、入らなくてもいい」という意味です。 このような場合でも、初期値を用意すれば安全に扱えます。

7. ネストした分割代入を安全に使う考え方

7. ネストした分割代入を安全に使う考え方
7. ネストした分割代入を安全に使う考え方

分割代入は入れ子のデータにも使えますが、初心者の方は特に注意が必要です。 深くなればなるほど、値が存在しない可能性が高くなります。


const data = {
    profile: {
        nickname: "たけし"
    }
};

const { profile: { nickname = "未設定" } } = data;
console.log(nickname);

たけし

「必ず存在する」と思い込まず、常に初期値を考えることが、 安全なTypeScriptコードを書くコツです。

8. TypeScriptで分割代入を使う心構え

8. TypeScriptで分割代入を使う心構え
8. TypeScriptで分割代入を使う心構え

TypeScriptで分割代入を使うと、コードが短くなり、読みやすくなります。 しかし、短く書けるからといって、考えなしに使うのは危険です。

「値がない場合はどうなるか」「初期値は必要か」を常に意識してください。 これはプログラミング未経験の方が、最初に身につけたい大切な考え方です。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう