Explica este código TypeScript
Dificultad: Básico
const arr1 = [1, 2, 3];
const arr2 = ["hola", "mundo"];
const result = [...arr1, ...arr2];
// ¿Cuál es la anotación de tipo de result?
- A.
string[]
- B.
number[]
- C.
array[]
- D.
(string | number)[]
✅ D. Cuando usamos el Spread Operator en TypeScript la anotación de tipo resultante será la unión de tipos de todos los elementos de ambos arreglos. En este caso la unión entre cadenas y números de ambos arreglos.
Respuesta
(string | number)[]
Top comments (1)
Me la juego. Estás haciendo una declaración implicta de tipos (un array de number y un array de strings). Como no has definido un tipo, TS entiende que estás mezclando dos tipos con spread, por lo que el linter asume que sabes que estás mezclando (string | number)[].