===== Tuple # =====
Тип Tuple дает вам возможность объявить массив с известным фиксированным количеством элементов, которые не обязаны быть одного типа. Например, вы хотите иметь значение Tuple как пару "строка" и "число":
// Объявление типа tuple
let x: [string, number];
// Его инициализация
x = ['hello', 10]; // OK
// Некорректная инициализация вызовет ошибку
x = [10, 'hello']; // Error
Когда вы получаете элемент с известным идексом, будет возвращен тип этого элемента:
console.log(x[0].substr(1)); // OK
console.log(x[1].substr(1)); // Error, 'number' does not have 'substr'
При получении элемента с идексом вне известного диапазона, будет возвращен тип Union:
x[3] = 'world'; // OK, тип string может быть присвоен (string | number)
console.log(x[5].toString()); // OK, 'string' и 'number' оба имеют метод toString
x[6] = true; // Ошибка, boolean это не (string | number)
Тип Union будет описан чуть позже, в разделе продвинутых типов.