AnyCompiler

Arrays e Tuples

Um array tipado funciona exatamente como um array JavaScript, mas sua anotação de tipo trava que tipo de valores ele pode conter — string[] significa um array de strings, e o TypeScript vai sinalizar qualquer outra coisa que acabe ali.

let fruits: string[] = ["apple", "banana", "cherry"];
console.log(fruits);
console.log(fruits[0]);

fruits.push("date");
console.log(fruits);
Output
[ 'apple', 'banana', 'cherry' ]
apple
[ 'apple', 'banana', 'cherry', 'date' ]

Tuples — comprimento fixo, tipos fixos, sem equivalente em JavaScript

Um tuple é um array com comprimento fixo onde cada posição tem seu próprio tipo específico — a posição 0 pode sempre ser um string, a posição 1 sempre um number. Arrays JavaScript puros não têm esse conceito de forma alguma; ele existe puramente no sistema de tipos do TypeScript.

let point: [number, number] = [3, 4];
console.log(point);

let person: [string, number] = ["Alice", 30];
console.log(`${person[0]} is ${person[1]} years old`);
Output
[ 3, 4 ]
Alice is 30 years old

Em tempo de execução, um tuple é apenas um array comum — a distinção só existe enquanto você está escrevendo o código. Tente atribuir um string a point[0], e o TypeScript te impede antes mesmo de rodar.

A seguir: objects e interfaces — descrever o formato de um objeto, não só de um único valor.