Fundamentos de TypeScript 🦆| #4: Tuplas

Las tuplas en esencia son arreglos, pero arreglos limitados a cierta cantidad de elementos y a ciertos tipos de datos.

Sintaxis

const nombreVariable:[tipoDato1, tipoDato2, ...tipoDatoN] = [valor1, valor2, ... valorN];

Funcionamiento

Por ejemplo, podríamos tener una tupla temperatura de 2 posiciones, que contega la temperatura y su unidad de medida:

const temperatura:[number, string] = [20,"C"];

Esta tupla solo puede contener 2 elementos, el primero un number, y el segundo un string, exactamente en ese orden.
Si tuvieramos la tupla invertida tendríamos un error:

const temperatura:[number, string] = ["C", 20];

Estamos tratando de asignar un tipo string a un tipo number, por ello nos arroja una advertencia como la siguiente:

Type 'string' is not assignable to type 'number'.

Ahora, si intentamos agregar más de 2 elementos al ejemplo anterior, por más que sean del tipo de dato permitido, este arrojará un error:

const temperatura:[number, string] = [20, "C", 23, "F"];

Type '[number, string, number, string]' is not assignable to type '[number, string]'.
Source has 4 element(s) but target allows only 2.

Para solucionarlo tendremos que añadir más tipos, de la siguiente manera:

const temperatura:[number, string, number, string] = [20, "C", 23, "F"];

Caso especial

¿Qué pasaría si intentamos usar un push en una tupla?
¿Debería dar un error no es verdad?
Pues no lo hace.

const temperatura:[number, string, number, string] = [20, "C", 23, "F"];

temperatura.push(30)
//salida: [20, "C", 23, "F", 30];

Este ejemplo es totalmente válido.

Conclusiones

  • Las tuplas son arreglos pero son datos específicos.
  • Permiten crear arreglos con valores concretos y tipos exactos en cuanto a posiciones se refiere.
  • Son más rápidos que los arreglos tradicionales.

Referencias

25