Tuple
↔ Array
with fixed length & fixed element Type
Tuple Type used to distinguish from Array Literal which TSC infers as List
Tuple useful for reping ordered sequence of elements ie CSV files
Variadic Tuple
Tuple Type Annotation using Spread Operator or Rest Parameter, to define varying number of element types
let xy:
[number, number] = [1, 2];
otherwise TSC infers Type as number[]
const entries:
[string, number][] = Object.entries({ x: 1, y: 2})
Object.entries()
returns an array of tuples: [["a", 1], ["b", 2]]
const drink_obj = {color: "brown", carbonated: true, sugar: 40}
const drink_tup = [brown, true, 40]
Convert the following array into a tuple:
const pepsi = ["brown", true, 40]
via type annotation: const pepsi: [string, boolean, number] = ["brown", true, 40]; via type alias: type Drink = [string, boolean, number]; const pepsi: Drink = ["brown", true, 40];
References
Variadic Tuple
↔ Tuple Type Annotation using Spread Operator or Rest Parameter, to define varying number of element types