cordelia.dev

タプル型 - TypeScript -

TypeScript

要素数が固定された配列。それぞれの要素に型を付けることができる。


Basics

type Data = [string, number];
const user: Data = ['bob', 26];

console.log(user[0]);


let 変数と使う

let data: [string, number];
data = ['h', 0];

console.log(data[0]);
let data: [string, number] = ['h', 0];

console.log(data[0]);


const 変数と使う

const data: [string, number] = ['h', 0];

console.log(data[0]);


type と使う

type Data = [string, number];
const user: Data = ['h', 0];

console.log(user[0]);



Labeled tuple

各要素に識別子として、名前を付けられるタプル。ただし要素にアクセスする時は基本タプルと同じでインデックスでアクセスするので、データを定義する時に、その値が何を表すのかわかりやすくするだけ。

type Data = [name: string, age: number];
const user: Data = ['bob', 26];

console.log(user[0]);



Readonly tuple

読み取り専用のタプル。後から値の書き換えができない。

type Data = readonly [name: string, age: number];
const user: Data = ['bob', 26];

user[0] = 'john';
>> Cannot assign to '0' because it is a read-only property.



Optional tuple

オプショナルな要素を定義できる。この要素は定義してもしなくても問題ない。

type Data = [string, number, string?];
const user: Data = ['bob', 29];

console.log(user[0]);