Tuples

4/22
Recursos

Aportes 5

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Tuplas en TS

Las tuplas nos sirven para hacer un array fuertemente tipado especificando el tipo de dato de cada elemento del array así como la cantidad de elementos. Para hacer una tupla lo hacemos de la siguiente manera

const user: [string, number, boolean] = ["Irving", 20, true]

Hay algo que se debe tomar en cuenta, que al mutar un array con una tupla como tipo, se puede utilizar un método push, y esto es permitido siempre y cuando el valor sea de un tipo declarado en la tupla, pero si permite más valores

let user: [string, number] = ['alan', 31];
user.push(true); // esto devuelve error
user.push(123456); // esto es permitido
user.push('alan'); // esto también es permitido

También podemos acceder a la posición de la tupla como si fuera un array:

let user: [string, number] = ['mike', 23] //* Esto es una tupla, solamente puede tener esos 2 argumentos en ese orden

console.log(user[0]) //* 'mike
console.log(user[1]) //* 23

const [username, age] = user //* Destructuración de una tupla
console.log(username) //* 'mike'
console.log(age) //* 23

//Just two strings
  let users: [string, string];
  users = ["victor", "andres"];

  console.log(users);

  //Just one boolean, one string and one number
  let newTuple: [boolean, string, number] = [true, "variable", 3];

  console.log(newTuple);

  //Destructuring a tuple

  const [first, second, third] = newTuple;

  console.log(first);
  console.log(second);
  console.log(third);
  
  //Tuple with optional properties
  let newTuple2: [boolean, string, number?] = [true, "variable"]; //Number is optional

  console.log(newTuple2);

  //Tuple without limit
  const args: [boolean, ...number[], string] = [true, 2, 3, 4, 5, 6, "seven"]

  console.log(args)

Ejemplo de types como tuplas

podemos ver como creamos un type como tupla y en este mencionamos que su ultimo elemento es opcional y adicional a eso lo utilizamos, haciendo de la variable staff un array de tuplas.

type StaffAccount = [number, string, string, string?];

const staff: StaffAccount[] = [
  [0, "Adankwo", "[email protected]"],
  [1, "Kanokwan", "[email protected]"],
  [2, "Aneurin", "[email protected]", "Supervisor"],
];

No confundir las tuplas de Typescript con las de JavaScript ( que esta en stage 2)
entre varias características que las diferencian están la inmutabilidad y posibilidad de comparación que tienen las tuplas de JavaScript en cambio las tuplas de Typescript están mas enfocadas en el tipado.