2016-01-07 7 views
9

私はES6で複数の変数をエクスポートしようとしている複数の変数をES6にエクスポートしますか?</p> <pre><code>var TestObject = Parse.Object.extend('TestObject') var Post = Parse.Object.extend('Post') export default TestObject export Post </code></pre> <p>main.jsを</p> <p>exports.js:

import TestObject from '../store' 
import Post from '../store' 

var testObject = new TestObject() // use Post in the same way 
testObject.save(json).then(object => { 
    console.log('yay! it worked', object) 
}) 

私は1つのだけなので、デフォルト値があることを理解します最初の項目にはdefaultが使用されました。

はしかし、私は、このエラーメッセージが表示されます:

Module build failed: SyntaxError: /home/alex/node/my-project/src/store/index.js: Unexpected token (9:7) 
    7 | 
    8 | export default TestObject 
> 9 | export Post 

は、たぶん私はそれを間違った方法をやっていますか?

+0

ちょうど野生の推測ができますが、追加しようとしています最初の 'export'行の終わりにセミコロン? – Pointy

+0

@Pointy私はそれを試みた。同じエラー。 – alexchenco

答えて

21

これは有効な構文ではありません。あなたがあなたの輸入も間違ってい

export default Parse.Object.extend('TestObject') 
export var Post = Parse.Object.extend('Post') 

にファイル全体をさえ

export {Post} 

か、単に

export var Post = Parse.Object.extend('Post') 

を行うか、短くすることができ、あなたがやりたいだろう

import TestObject, {Post} from '../store' 

これは本当にデフォルトのエクスポートと別の名前付きエクスポートがあります。 2つの名前付きエクスポートを作成し、必要に応じてデフォルトを設定することもできます(例:

export var TestObject = Parse.Object.extend('TestObject'), 
    Post = Parse.Object.extend('Post') 

import {TestObject, Post} from '../store' 
+0

私は興味があります、 'export default'と' export var'の違いは何ですか? – alexchenco

+3

デフォルトのエクスポートは 'fooを 'からインポートするときに得られるものです。'/module ''、 'export var SomeThing'を使うと、名前でインポートする必要があります。 'import {SomeThing} from './module'; ' – loganfsmyth

+0

デフォルトでは、インポートされたオブジェクトを構造化せずにインポートする項目になります。 –

6

あなたは、インポート時次に、あなたはこのようにそれを行う

var TestObject = Parse.Object.extend('TestObject') 
var Post = Parse.Object.extend('Post') 

export { 
    TestObject, 
    Post 
} 

ES6

にこのような複数のオブジェクトをエクスポートすることができます。

import { TestObject, Post } from './your-file'; 

をあなたがすべてに約importexportここで読むことができます。

+0

私の答えを無効にしたばかりの編集。 ES6でキー名を指定せずにエクスポートすることは有効です。 –

+0

ああ、そうだ。だから、 'default'キーワードはもはや必要ではありませんか? – alexchenco

+1

@MarioTackeええ、私は何も得ていない、なぜその編集が受け入れられたのか分かりません。 – loganfsmyth

0

それはあなたのユースケースに収まる場合は、デフォルト以外の輸出をあなたのデフォルトのエクスポートのプロパティを作ることができます。私はそれがよりクリーンなコードのために作ることがわかります。その後

const TestObject = Parse.Object.extend('TestObject'); 
TestObject.Post = Parse.Object.extend('Post'); 

export default TestObject; 

、あなただけのデフォルトをインポートする必要がインポート時:

import TestObject from './your-file.js'; 

を次に、あなたがそうのようにそれを使用します。

TestObject.Post({some, args}); 
関連する問題

 関連する問題