Rob*_*cki 18 javascript babel ecmascript-6 spread-syntax ecmascript-next
我试图从库中导入所有内容作为哈希,修改它,并重新导出修改后的哈希,而不知道库中的所有命名导出.例如:
import * as reactBootstrap from 'react-bootstrap';
wrappedReactBootstrap = doFunnyThingsTo(reactBootstrap);
export {
...wrappedReactBootstrap
};
// or
export wrappedReactBootstrap;
Run Code Online (Sandbox Code Playgroud)
我对https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export的理解是规范不允许以下内容.有人可以证实吗?
显然,循环是不可能的,因为导出和导入语句必须是顶级的.
Est*_*ask 22
对象休息传播是第3阶段提案,而不是任何规范的一部分(可能会包含在ES2018中).
更重要的是,export具有模仿现有JS语法但不解释{ ... }为表达式的语法.export语法是严格定义的,因为ES2015模块应该进行静态分析.这是它们的一个好处,但它要求开发人员明确指定导出和导入.
由于{ ...wrappedReactBootstrap }引入了动态导出(这里确实用于此目的),ES2015模块不支持export它,并且它不太可能.
如果需要为导出提供动态行为,则可以将其导出和导入为命名或默认对象.
import * as reactBootstrap from 'react-bootstrap';
export default doFunnyThingsTo(reactBootstrap);
Run Code Online (Sandbox Code Playgroud)
并使用像
import wrappedReactBootstrap from '...';
const { funny, thing } = wrappedReactBootstrap;
Run Code Online (Sandbox Code Playgroud)
显然,wrappedReactBootstrap对象不会以这种方式获得ES2015模块的好处,例如树木摇晃.
| 归档时间: |
|
| 查看次数: |
5737 次 |
| 最近记录: |