Acabo de encontrar {....0} en el código de un amigo. Evaluarlo en la consola devuelve {} (objeto vacío).
¿Porqué es eso? ¿Cuál es el significado de 4 puntos en JavaScript?
Cuatro puntos en realidad no tienen significado. ... es el operador de propagación y .0 es la abreviatura de 0.0 .
Difundir 0 (o cualquier número) en un objeto produce un objeto vacío, por lo tanto, {} .
Tres puntos en un literal de objeto son una propiedad de propagación , por ejemplo:
const a = { b: 1, c: 1 }; const d = { ...a, e: 1 }; // { b: 1, c: 1, e: 1 } El último punto con un 0 es un número .0 . 0 es lo mismo que 0.0 . Por lo tanto esto:
{ ...(0.0) }distribuye todas las propiedades del objeto numérico en el objeto; sin embargo, como los números no tienen propiedades (propias), obtienes un objeto vacío.
En términos simples, el operador de extensión {...} en javascript extiende un objeto/matriz con otro.
Entonces, cuando babelifier intenta extender uno con otro, debe identificar si está tratando de extender una matriz o un objeto.
En el caso de array , itera sobre los elementos.
En el caso de object , itera sobre claves.
En este escenario, el babelyfier está tratando de extraer claves para el number al verificar la own property call del Objeto que falta para number , por lo que devuelve el Objeto vacío.