2017-04-18 11 views
2

ES6で関数の結果をエクスポートしようとしています。機能は重要ではありません - 次の例は、のために働く:SyntaxError: Unexpected token, expected ,::またES6関数の結果をエクスポートする

export { 
    a: func(a), 
    b: func(b) 
} 

export { 
    func(a) as a, 
    func(b) as b 
} 

これらのに対し

const a = 'foo' 
const b = 'bar' 

export default { 
    a: func(a), 
    b: func(b) 
} 

がエラーを打つ:const func = input => input

これは動作します理由を説明できますか? Thisは上記のケースをカバーしていないようです。

+0

元のコードを含めることができますか?あなたが与えた例は間違っていません - トランスバータを使用していますか? – mikeapr4

答えて

4

あなたは、

const aArg = 'foo' 
const bArg = 'bar' 

export const a = func(aArg); 
export const b = func(bArg); 

名前輸出がエクスポートする変数名を必要と行うことができます彼らは、任意の式の結果をエクスポートすることはできません。

+0

ありがとうございます。私は何ができるのか知っていますが、私はできないことを理解していません。 'func(a)'の結果に 'func(a)'の名前を付けるのと同じ理由は何ですか? –

+0

'X as Y'は特に'変数名AS変数名 'です。そこで関数を呼び出すことはできません。私はそれが技術的に許されていると思いますが、通常存在する変数をエクスポートしているので非常に頻繁に起きるようには見えません。 – loganfsmyth

+0

あなたはそれについて参考になっていますか? –

0
export default ... 

あなたは、単一のオブジェクト、クラス、関数をエクスポートしている、など

export (Object, Class, Function) ... 

あなたはそれを割り当てる必要がありますので、あなたは、など多くのオブジェクト、クラス、関数を、書き出します名前。

最初の例は、あなたが学校で教えて、1人の生徒を持つ場合のようなものです。あなたはその学生が誰であるか、彼がそこにいる唯一の人だから彼に電話する方法を知っています。しかし、2番目の例は、多くの学生がいるクラスを教えるようなものです。正しい学生を呼び出すために、いくつかのタイプのネーミングが必要です。

関連する問題