Qué significa Spread sobre valor no iterable y cómo solucionarlo
Referencia del error
Spread sobre valor no iterable
Lenguaje
Severidad
MediaCuándo ocurre
Este TypeError se lanza cuando el operador spread (...) se usa en un valor que no implementa el protocolo iterable.
Posibles soluciones
Protege el valor antes del spread con un fallback: [...(value ?? [])]. Verifica que las respuestas de API que deberían ser arrays lo sean realmente. Usa Array.isArray() para validar antes del spread. Recuerda: el spread de objeto ({...obj}) y el spread de array ([...arr]) tienen requisitos diferentes.
Errores relacionados
Más detalles
Este TypeError se lanza cuando el operador spread (...) se usa en un valor que no implementa el protocolo iterable. Los arrays, cadenas, Sets y Maps son iterables; los objetos planos, null, undefined y los números no lo son.
Por qué ocurre
- •Aplicar spread a null o undefined en un literal de array.
- •Aplicar spread a un objeto plano ({}) en un contexto de array (solo funciona en spread de objeto).
- •Aplicar spread a un valor de una API que devolvió null en lugar de un array.
- •Intentar aplicar spread a un número o valor booleano.
Posibles soluciones
Protege el valor antes del spread con un fallback: [...(value ?? [])]. Verifica que las respuestas de API que deberían ser arrays lo sean realmente. Usa Array.isArray() para validar antes del spread. Recuerda: el spread de objeto ({...obj}) y el spread de array ([...arr]) tienen requisitos diferentes.
Ejemplos
Código que causa el error
const a = [1, 2];
const b = null;
const merged = [...a, ...b];Error en la terminal
TypeError: b is not iterable
Código corregido
const a = [1, 2];
const b = null;
const merged = [...a, ...(b ?? [])];
console.log(merged); // [1, 2]Practica en inglés
¿Cómo le explicarías un Spread Non-Iterable a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis