0Pricing
TypeScript Academy · レッスン

Restパラメーターと型付きSpread

RestパラメーターとSpread操作に型を付けます。

「Restパラメーターと型付きSpread」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。

ようこそ

Restパラメーターは、複数の引数を配列にまとめます。TypeScriptでは、Restパラメーターを要素型の配列として型付けします。

Restパラメーターの型付け

Restパラメーターには`...name: T[]`構文を使います。残りのすべての引数を配列として受け取ります。
function sum(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0);
}
console.log(sum(1, 2, 3, 4)); // 10

必須パラメーターの後ろのRestパラメーター

Restパラメーターは最後に置く必要があります。それ以外の必須パラメーターはその前に置きます。
function log(level: string, ...messages: string[]): void {
  console.log(level, messages.join(' '));
}
log('INFO', 'Server', 'started', 'on', 'port', '3000');

配列を関数にスプレッドする

スプレッド`...`を使うと、配列の要素を個別の引数として渡せます。TypeScriptは、スプレッドする型がパラメーターと一致するかをチェックします。
function add(a: number, b: number): number { return a + b; }
const args: [number, number] = [1, 2];
add(...args); // OK — tuple spread is type-safe

通常の配列でスプレッドする

固定パラメーターの関数に通常の配列をスプレッドすると、エラーになることがあります。TypeScriptが引数の数が一致することを確認できないためです。
const nums = [1, 2]; // number[] — length unknown
// add(...nums); // Error: spread must match parameters
const pair: [number, number] = [1, 2];
add(...pair); // OK — tuple has known length

Restパラメーターとargumentsオブジェクト

Restパラメーターは、以前の`arguments`オブジェクトに代わるものです。`arguments`とは異なり、完全なTypeScriptの型サポートを備えた実際の配列です。

オブジェクトのスプレッド(Restパラメーターではありません)

オブジェクトをスプレッドすると、浅いコピーが作成されます。TypeScriptは、スプレッド結果の結合された型を推論します。
const a = { x: 1, y: 2 };
const b = { z: 3 };
const c = { ...a, ...b }; // { x: number; y: number; z: number }

スプレッドによるプロパティの上書き

スプレッドする際、同じ名前を持つ後のプロパティが前のプロパティを上書きします。
const base = { color: 'red', size: 5 };
const updated = { ...base, color: 'blue' };
// { color: 'blue', size: 5 }

配列での型付きスプレッド

配列のスプレッドによって新しい配列が作成されます。TypeScriptは、結合された要素の型を推論します。
const a: number[] = [1, 2];
const b: number[] = [3, 4];
const c: number[] = [...a, ...b]; // [1, 2, 3, 4]

可変長タプルのRest

TypeScriptでは、高度な可変長パターンのために、タプル型内でRest要素をサポートしています。
type Strings = string[];
type StringsAndNumber = [...Strings, number];
const t: StringsAndNumber = ['a', 'b', 42];

分割代入でのRest

分割代入でRest構文を使うと、残りの要素を型付き配列にまとめられます。
const [first, ...rest]: number[] = [1, 2, 3, 4];
// first: number, rest: number[]

クイックチェック

`function collect(...items: string[])`のRestパラメーター`...items`について、TypeScriptはどの型を推論しますか?

まとめ

Restパラメーター(`...args: T[]`)は、残りの引数を型付き配列にまとめます。型安全性を確保するには、タプルを使って配列を関数にスプレッドします。オブジェクトをスプレッドすると、型が推論された結合型を持つ浅いコピーを作成できます。

よくある質問

「Restパラメーターと型付きSpread」レッスンは無料ですか?

はい。「Restパラメーターと型付きSpread」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。

「Restパラメーターと型付きSpread」で何を学びますか?

RestパラメーターとSpread操作に型を付けます。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「Restパラメーターと型付きSpread」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パラメーターと戻り値の型注釈
  2. オプションパラメーターとデフォルトパラメーター
  3. Restパラメーターと型付きSpread
  4. void、never、関数シグネチャ
← TypeScript Academyに戻る