This content originally appeared on DEV Community and was authored by Cristian Fernando
Explica este cΓ³digo TypeScript
Dificultad: Intermedio
const temperatura = [25, "C"];
const tupla:[number, string] = temperatura;
- A.
No se puede asignar (number | string)[] a [number, string]
- B.
No hay ningΓΊn error
- C.
Syntax Error
- D.
Ninguna de las anteriores
Respuesta
A.
No se puede asignar (number | string)[] a [number, string]
La variable temperatura
es un arreglo de numeros y cadenas, por ende puede aceptar cualquier cantidad de items siempre y cuando sean de estos tipos de datos, en nuestro ejemplo solo tienen 2 valores: 25
y "C"
pero podrΓan tener mΓ‘s.
En cambio nuestra variable tupla
es una tupla que explΓcitamente le indicamos que solo puede tener 2 items, el primero de tipo number
y el segundo te tipo string
en ese orden.
Por ello no se puede asignar (number | string)[]
a [number, string]
ya que el primero es un arreglo y el segundo es una tupla.
Para solucionar esto tenemos que declarar a temperatura
como una tupla de manera explicita y no dejar que TypeScript infiera su tipo:
const temperatura:[number, string] = [25, "C"];
Ahora si temperatura
es una tupla de dos valores y si es asignable a la variable tupla
.
This content originally appeared on DEV Community and was authored by Cristian Fernando