配列・タプル(array-tuple)
TypeScriptでは、配列(Array)やタプル(Tuple)を使って順序付きの複数の値を扱うことができます。
型を指定することで、要素の型・構成の安全性を確保できます。
📦 配列型(Array)
配列は以下のいずれかの構文で型を指定します:
const names: string[] = ["Alice", "Bob"];
const ids: Array
<number> = [1, 2, 3];
どちらの書き方でも意味は同じです。
🔍 空配列の場合は型注釈必須
const tags: string[] = [];
const values: Array
<number> = [];
📐 タプル型(Tuple)
タプルは異なる型を順序付きで持つ固定長配列です。
const point: [number, number] = [10, 20];
const user: [string, number] = ["Taro", 30];
- 要素の型・順序・数がすべて固定されている
- 明示的に
[型, 型, ...]
で指定する必要があります
ReactのuseStateの戻り値に使われているのもタプル
✋ タプルの制約と注意点
- タプルの要素数は固定(例:2要素のタプルに3つ入れるとエラー)
readonly
をつけて変更を禁止することも可能:
const coord: readonly [number, number] = [0, 0];
// coord[0] = 5; // ❌ 書き換えエラー
🧪 可変長のタプル(Rest要素)
const args: [string, ...number[]] = ["sum", 1, 2, 3];
- 最初の要素は
string
、それ以降は任意の数のnumber
- 関数の引数などで便利
✅ まとめ
項目 | 配列(Array) | タプル(Tuple) |
---|---|---|
型の統一 | 同じ型のみ | 異なる型もOK |
要素数 | 任意 | 固定 |
型の指定 | string[] / `Array |
|
| [T1, T2, …]` |
||
ユースケース | リストデータ、ループ処理等 | 固定構造の返り値・複数値の保持など |
const users: [string, number][] = [
["Alice", 20],
["Bob", 30]
];
配列は「可変長・同型」、タプルは「固定長・異型」のコレクションとして使い分けましょう。