Capítulo 6. Matrizes
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Matrizes e tuplas
Um flexível e outro fixo
Escolhe a tua aventura
Matrizes JavaScript são extremamente flexíveis e podem conter qualquer mistura de valores no seu interior:
constelements=[true,null,undefined,42];elements.push("even",["more"]);// Value of elements: [true, null, undefined, 42, "even", ["more"]]
Na maioria dos casos, no entanto, as matrizes JavaScript individuais destinam-se a conter apenas um tipo específico de valor. Adicionar valores de um tipo diferente pode ser confuso para os leitores ou, pior ainda, o resultado de um erro que pode causar problemas no programa.
O Typescript respeita a melhor prática de manter um tipo de dados por array, lembrando que tipo de dados está inicialmente dentro de um array e permitindo que o array opere apenas com esse tipo de dados.
Neste exemplo, o Typescript sabe que a matriz warriors contém inicialmente valores do tipo string, por isso, embora seja permitido adicionar mais valores do tipo string, não é permitido adicionar qualquer outro tipo de dados:
constwarriors=["Artemisia","Boudica"];// Ok: "Zenobia" is a stringwarriors.push("Zenobia");warriors.push(true);// ~~~~// Argument of type 'boolean' is not assignable to parameter of type 'string'.
Podes pensar na inferência do TypeScript do tipo de um array a partir dos seus membros iniciais como semelhante à forma como compreende ...