2016-10-06 4 views
0

があった場合、私は作品次のコードを持っている:ES6 JS:constの輸出のための構文は、いくつかの再帰

import sequelize from 'sequelize'; 
let A = sequelize.define('a', { 
    }, { 
    classMethods: { 
     someMethod(foo) { 
     return A.upsert(foo); 
     } 
    } 
    }); 

export default A; 

をしかし、私は明確にするためAの定義は同じ行にexport defaultを入れたいです。しかし、Aの一部は基本的に自分自身を呼び出すので、私は正しい構文が何であるかを知ることができません。

+0

someMethodの目的に私をバグしないでください。これは一例です。 –

+0

単に 'this.upsert'を' A'なしで使うのはどうですか? – Bergi

+0

@Bergi "someMethod"の内容は、私の意見を示すための例に過ぎません。 –

答えて

2

あなただけの関数やクラスの宣言と連携export default近道は、ありません

export { A as default } 
const A = …; // whatever 

または

let A; // I would avoid this 
export default A = …; 

を使用することができます。

+0

は最初の構文を管理できません:私は 'ReferenceError:A is not defined'を取得します。 2番目の構文は明らかにうまくいきます。これは、上の例で私が取り除こうとしているものです。 –

+0

本当ですか?私はそれが正当だと確信しています。あなたは蒸散器を使用していますか?はいの場合、バグかもしれません。 – Bergi

+0

2番目の構文については、いいえ、あなたの質問と同じではありません。あなたは 'const A = ...をやっています。 export default A;そこに、私のスニペットでは、 "export default'"キーワードが定義の上にあります。 – Bergi

1

短い答えは:できません。

答えがexport default somethingの場合、特定の値がモジュールからエクスポートされ、本質的に名前がないことを指定しています(したがって、default部分)。

CommonJSとは異なり、エクスポートしているもののハンドルはありません。あなたがしたいことは、無名関数を再帰的に呼び出すことに相当します。どのように参照なしでそれを行うことができますか?

関連する問題