2016-03-08 7 views
7
import {Component, ...actions} from '../MyModule'; 

糸くずれエラーが発生しているようです。 ES6のインポートステートメントに「拡散」できない理由はありますか?分解スプレッドインポートES6

+0

破壊が何をすると思いますか?他のすべてのエクスポートから 'Component'を差し引いてください。 – nils

+1

仕様を見てください:http://www.ecma-international.org/ecma-262/6.0/#sec-imports _NamedImports_の表記法はオブジェクトの表記法のように見えますが、それは異なるものです破壊されない)。 _MyModule_がオブジェクトをエクスポートすると、割り当てで構造解除を実行できます。 – Matthisk

+1

ほとんどの場合、スプレッド演算子はES6の一部ではなく、将来のバージョンの提案です。 – Bergi

答えて

13

ES6のインポート構文は非構造化ではありません。構文は{で始まりますが、形式はまったく異なり、実装での処理方法はまったく異なります。たとえば、インポートの名前を

import {Component as MyComponent} from './MyModule'; 

と変更することができます。これは明らかにオブジェクトリテラルではありません。

あなたがプロパティとして輸入を参照するために使用できるオブジェクトが必要な場合は、MyModule.<exportName>を使用し、その後

import * as MyModule from '../MyModule'; 

を行うことができます。目的が、具体的には、すべてのエクスポート値を含むオブジェクトを取得する場合は、Componentを除いて、後でいつでも破棄することができます。

const {Component, ...actions} = MyModule;