TypeScript タプルについて

TypeScriptのタプルを使うことで、固定長の配列の型を定義することができます。

以下は、一つ目の要素にユーザー名(string)、二つ目の要素に年齢(number)を持つタプルの定義です。

type User = [string, number];

let tami: User;
tami = ['Tamibouz', 33]; // ok
tami = ['Tamibouz', '33']; // ng
tami = ['Tamibouz', 33, 'aiueo']; // ng

可変長を組み合わせることも可能です。

以下は先ほどの例に可変長な部分を追加した型です。

一つ目の要素と二つ目の要素は先ほどと同じですが、その後は文字列であれば許容されます。

type User = [string, number, ...string[]];

let tami: User;
tami = ['Tamibouz', 33, 'aiueo', 'kakikukeko']; // ok
tami = ['Tamibouz', 33]; // ok
tami = ['Tamibouz', 33, 'aiueo', 'kakikukeko', 123]; // ng 123はnumberのため