es6 - let javascript w3schools
utilizando el operador de extensión `...` en javascript es6 llamado exports (1)
Estoy intentando importar todo de una biblioteca como un hash, modificarlo y volver a exportar el hash modificado, sin conocer todas las exportaciones nombradas en una biblioteca. Por ejemplo:
import * as reactBootstrap from ''react-bootstrap'';
wrappedReactBootstrap = doFunnyThingsTo(reactBootstrap);
export {
...wrappedReactBootstrap
};
// or
export wrappedReactBootstrap;
Mi comprensión de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export es que la especificación no permite lo siguiente. ¿Alguien podría confirmar?
Obviamente, el bucle no es posible, ya que las declaraciones de exportación e importación deben ser de primer nivel.
La extensión de reposo de objeto es una propuesta de etapa 3 y no una parte de ninguna especificación (probablemente se incluirá en ES2018).
Más importante aún, export
tiene una sintaxis que imita la sintaxis JS existente pero no interpreta { ... }
como una expresión. export
sintaxis de export
se definió estrictamente porque se supone que los módulos ES2015 deben analizarse estáticamente. Este es uno de sus beneficios, pero requiere que el desarrollador especifique exportaciones e importaciones explícitamente.
Dado que { ...wrappedReactBootstrap }
introduce la exportación dinámica (se usó aquí exactamente para este propósito), no es compatible con la export
módulo ES2015 y es muy poco probable que lo sea.
Si es necesario proporcionar un comportamiento dinámico para la exportación, se puede exportar e importar como nombre o como objeto predeterminado.
import * as reactBootstrap from ''react-bootstrap'';
export default doFunnyThingsTo(reactBootstrap);
Y usado como
import wrappedReactBootstrap from ''...'';
const { funny, thing } = wrappedReactBootstrap;
Obviamente, el objeto wrappedReactBootstrap
no obtendrá los beneficios de los módulos ES2015 de esta manera, p. Ej. Tree Shaking.