0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TypeScriptのタプルについて

Posted at

はじめに

TypeScriptでは、配列の要素の型と数を厳密に定義することができる「タプル」型をサポートしています。タプルを使用することで、特定の数と順序の要素を持つ配列を定義できます。これにより、データの構造をより明確に表現し、型安全性を向上させることができます。

タプルとは

タプルは、特定の型と順序を持つ要素の集まりです。配列とは異なり、各要素の型を個別に指定できます。

タプルの定義

以下に、基本的なタプルの定義と使用例を示します。

// 文字列と数値のタプルを定義
let person: [string, number];

// 値を代入
person = ["Alice", 30]; // OK

// 不正な値を代入
person = [30, "Alice"]; // エラー: 型 'number' を型 'string' に割り当てることはできません。
person = ["Alice"]; // エラー: タプル型 '[string, number]' の長さに一致しません。

この例では、person[string, number] 型のタプルとして定義されています。したがって、最初の要素は文字列、2番目の要素は数値である必要があります。

タプルの利点

タプルを使用することで、以下の利点があります。

  1. 型安全性の向上:各要素の型が厳密に定義されているため、誤った型のデータが代入されることを防げる
  2. データ構造の明確化:データの構造が明確になるため、コードの可読性が向上する
  3. 静的検査:コンパイル時にエラーが検出されるため、バグの早期発見が可能

タプルの応用例

複数の戻り値を返す関数

タプルを使用して、複数の戻り値を返す関数を定義できます。

function getPersonInfo(): [string, number] {
    return ["Bob", 25];
}

let [name, age] = getPersonInfo();
console.log(name); // "Bob"
console.log(age);  // 25

複数の型を持つ配列

タプルを使用して、異なる型の要素を持つ配列を定義できます。

let data: [string, number, boolean] = ["Alice", 30, true];
console.log(data); // ["Alice", 30, true]

オプショナルな要素

タプルにはオプショナルな要素を含めることもできます。

let tuple: [string, number?];
tuple = ["Hello"];  // OK
tuple = ["Hello", 42];  // OK
tuple = [42];  // エラー: 型 'number' を型 'string' に割り当てることはできません。

名前付きタプル

TypeScript 4.0からは、タプルに名前を付けることができ、可読性がさらに向上します。

let person: [name: string, age: number] = ["Alice", 30];
let [name, age] = person;
console.log(name); // "Alice"
console.log(age);  // 30

タプルと配列の違い

タプルと配列は似ていますが、いくつかの重要な違いがあります:

  1. 要素の型:配列ではすべての要素が同じ型である必要がありますが、タプルでは各要素の型を個別に指定できる
  2. 要素の数:配列の要素数は固定されていませんが、タプルの要素数は固定されている
  3. アクセスの安全性:タプルでは要素の型が保証されるため、安全にアクセスできる

まとめ

TypeScriptのタプルは、特定の型と順序を持つ要素の集まりを定義するための強力なツールです。タプルを使用することで、データの構造を明確に表現し、型安全性を向上させることができます。複数の戻り値を返す関数や異なる型の要素を持つ配列など、さまざまな場面でタプルを活用することができます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?