3.5 配列
TypeScript(およびJavaScript)において、配列は複数の値を順番に並べて管理するためのデータ構造です。
3.5.1 配列リテラルで配列を作成する
Section titled “3.5.1 配列リテラルで配列を作成する”配列を作成する最も基本的な方法は、角括弧 [] を使用する配列リテラルです。
- 記法:
[要素1, 要素2, ...] - 要素 (element): 配列に含まれる個々の値を指します。
- スプレッド構文: オブジェクト同様、
[...arr1, 4, 5]のように既存の配列を展開して新しい配列を作成できます。
3.5.2 配列の要素にアクセスする
Section titled “3.5.2 配列の要素にアクセスする”配列の要素には、インデックス(添字) を用いてアクセスします。
- 0始まり: 最初のエレメントは
arr[0]で取得します。 - 代入:
arr[1] = 100のように、特定のインデックスの値を書き換えることが可能です(constで宣言された配列であっても、中身の書き換えは制限されません)。
3.5.3 配列型の記法
Section titled “3.5.3 配列型の記法”TypeScriptで配列の型を指定する方法は2種類あります。
- T[]:
number[]のように、要素の型に[]を付けます(一般的)。 - Array<T>: ジェネリック型を用いた記法です。
3.5.4 readonly 配列型
Section titled “3.5.4 readonly 配列型”中身の変更を禁止したい場合は、readonly T[](または ReadonlyArray<T>)を使用します。
- 安全性: 要素の代入や
pushなどの破壊的なメソッドが制限され、バグの混入を防げます。
3.5.5 配列の機能を使う
Section titled “3.5.5 配列の機能を使う”配列には、データを操作するための便利なメソッドが多数用意されています。
- 基本メソッド:
push(末尾に追加)、includes(存在チェック)、length(要素数の取得)など。 - 非破壊的な操作:
mapやfilterなど、元の配列を変更せず新しい配列を返すメソッドの活用が推奨されます。
3.5.6 for-of 文によるループ
Section titled “3.5.6 for-of 文によるループ”配列の全要素を順番に処理するには for-of 文が便利です。
- 記法:
for (const x of arr) { ... } - 特徴: インデックスを意識せずに各要素へ直接アクセスできるため、可読性が高まります。
3.5.7 タプル型
Section titled “3.5.7 タプル型”要素数が固定され、各要素の型が異なる配列を扱うための型です。
- 記法:
const tuple: [string, number] = ["indigo", 50]; - 厳密さ: 指定された位置に正しい型の値があるか、要素数が合っているかがチェックされます。