Javascript 分解结构扩展导入ES6
似乎是在抛出一个脱毛错误。有什么原因不能在ES6导入语句上“扩展”吗?ES6导入语法不是解构,就这么简单。语法以Javascript 分解结构扩展导入ES6,javascript,module,ecmascript-6,ecmascript-next,Javascript,Module,Ecmascript 6,Ecmascript Next,似乎是在抛出一个脱毛错误。有什么原因不能在ES6导入语句上“扩展”吗?ES6导入语法不是解构,就这么简单。语法以{开头,但其格式完全不同,在实现中处理它的方式也完全不同 import {Component, ...actions} from '../MyModule'; 这显然不是一个对象文字 如果您需要一个可用于将导入引用为属性的对象,可以这样做 import {Component as MyComponent} from './MyModule'; 然后使用MyModule.。如果您的
{
开头,但其格式完全不同,在实现中处理它的方式也完全不同
import {Component, ...actions} from '../MyModule';
这显然不是一个对象文字
如果您需要一个可用于将导入引用为属性的对象,可以这样做
import {Component as MyComponent} from './MyModule';
然后使用MyModule.
。如果您的目标是获得一个包含所有导出值的对象,不包括组件
,那么您总是可以在之后进行分解,例如
import * as MyModule from '../MyModule';
您希望分解做什么?给您所有其他导出减去
组件
?看看规范:NamedImports的表示法可能看起来像对象表示法,但它是不同的(这就是为什么没有分解的原因)。如果MyModule导出对象,则可以在赋值中进行分解。这主要是因为spread运算符不是ES6的一部分,而是针对某个未来版本的建议。
const {Component, ...actions} = MyModule;