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

TypeScriptでスプレッド構文・rest構文をやさしく解説!初心者でも安心して使える基本ガイド

TypeScriptでスプレッド構文・rest構文を扱う方法
TypeScriptでスプレッド構文・rest構文を扱う方法

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

生徒

「TypeScriptの説明で、スプレッド構文とかrest構文ってよく出てくるんですが、正直よく分かりません…」

先生

「最初は難しく感じますよね。でも実は、データをまとめたり分けたりする、とても身近な考え方なんですよ。」

生徒

「パソコンをほとんど触ったことがなくても理解できますか?」

先生

「もちろんです。日常生活の例えを使いながら、TypeScriptでのスプレッド構文とrest構文の使い方を一つずつ見ていきましょう。」

1. スプレッド構文・rest構文とは?

1. スプレッド構文・rest構文とは?
1. スプレッド構文・rest構文とは?

TypeScriptのスプレッド構文rest構文は、どちらも「...(ドット3つ)」を使って書きます。 見た目は同じですが、役割は正反対です。

スプレッド構文は「バラして広げる」ための書き方で、rest構文は「まとめて集める」ための書き方です。 TypeScriptはJavaScript(ES6/ESNext)の文法をベースにしているため、これらの構文もそのまま安全に使えます。

プログラミング未経験の方は、「お菓子の袋」を想像してみてください。 スプレッド構文は袋の中身を机の上に全部出すイメージ、rest構文は机の上のお菓子を袋にまとめるイメージです。

2. スプレッド構文の基本的な使い方

2. スプレッド構文の基本的な使い方
2. スプレッド構文の基本的な使い方

まずはスプレッド構文から見ていきます。 スプレッド構文は、配列(データを順番に並べたもの)やオブジェクト(名前付きのデータの集まり)を展開するときに使います。

配列を広げる例

配列とは、「りんご・バナナ・みかん」のように、複数の値を順番にまとめたデータです。 スプレッド構文を使うと、その中身を一つずつ取り出せます。


const fruits = ["りんご", "バナナ", "みかん"];
const allFruits = ["ぶどう", ...fruits, "もも"];
console.log(allFruits);

["ぶどう", "りんご", "バナナ", "みかん", "もも"]

この例では、fruits配列の中身がバラされて、新しい配列の中に入っています。 元の配列は変更されないため、データを安全に扱えるのもTypeScriptの大きなメリットです。

3. オブジェクトで使うスプレッド構文

3. オブジェクトで使うスプレッド構文
3. オブジェクトで使うスプレッド構文

オブジェクトとは、「名前」と「値」をセットで管理するデータです。 例としては、「名前は山田、年齢は20歳」といった情報のまとまりを想像してください。


const user = { name: "山田", age: 20 };
const userWithAddress = { ...user, address: "東京" };
console.log(userWithAddress);

{name: "山田", age: 20, address: "東京"}

スプレッド構文を使うことで、元のオブジェクトを壊さずに、新しい情報を追加できます。 これは、TypeScriptで安全なコードを書くうえでとても重要な考え方です。

4. rest構文でデータをまとめる

4. rest構文でデータをまとめる
4. rest構文でデータをまとめる

次にrest構文です。rest構文は、バラバラに渡された値を一つにまとめるときに使います。 主に関数(処理をまとめたもの)の中で使われることが多いです。

関数でのrest構文

関数とは、「入力すると結果が返ってくる箱」のようなものです。 rest構文を使うと、いくつ値が来てもまとめて受け取れます。


function showNumbers(...numbers: number[]) {
    console.log(numbers);
}

showNumbers(1, 2, 3, 4);

[1, 2, 3, 4]

...numbersと書くことで、渡された数字が配列としてまとめられます。 TypeScriptでは型(ここではnumber)を指定できるため、間違ったデータが入るのを防げます。

5. スプレッド構文とrest構文の違いを整理しよう

5. スプレッド構文とrest構文の違いを整理しよう
5. スプレッド構文とrest構文の違いを整理しよう

ここまでで、スプレッド構文とrest構文の基本を学びました。 最後に、それぞれの役割をもう一度整理します。

  • スプレッド構文:配列やオブジェクトを広げる(コピー・結合に便利)
  • rest構文:複数の値をまとめる(関数の引数で活躍)

同じ「...」でも、使う場所によって意味が変わる点がポイントです。 TypeScriptでは型と組み合わせることで、より安全で読みやすいコードが書けるようになります。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する
New2
TypeScript
TypeScriptで「Hello World」を出力する手順と解説
New3
JavaScript
JavaScriptの正規表現で先頭・末尾を指定する^と$の使い方
New4
TypeScript
TypeScriptで非同期処理を含むES6構文をテストする方法!初心者のための徹底解説
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptとES6/ESNextの連携ガイド!最新機能を有効にするtarget設定
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの正規表現(RegExp)の基本構文と仕組みを解説
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの配列の要素にアクセスする方法(インデックス番号の使い方)