7

名前付きおよびデフォルトのエクスポートを理解しようとしています。セットアップ方法がわからない、一見基本的な要件があります。

両方をインポートできるようにしたい:

//app.js
import Mod from './my-module'
import { funcA, funcB } from './my-module'

console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // A a a

私が試してみると、これを行う最も近い方法は次のとおりです。

//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };

export default {funcA, funcB}

私の問題は、デフォルトのエクスポートで各関数のインデックスを再作成したくないことです。関数を定義し、それらがエクスポートされていることを確認して、どちらの方法でも使用できるようにしたいだけです。

提案?または、使用する必要がありますimport * as Mod from './my-module';か?

4

2 に答える 2

9

デフォルトのエクスポートを省略して、インポートを構文として使用できます。

//app.js
import * as Mod from './my-module'
import { funcA, funcB } from './my-module'

console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // B b b
//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
于 2016-04-12T10:10:26.173 に答える
5

以下を使用して、モジュールの内容全体を一度インポートします* as name

import * as Mod from './my-module';

次に、分解を使用してそれらを個別の定数に割り当てます。

const { funcA, funcB } = Mod;

エクスポートには、名前付きエクスポートを使用するだけです:

export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
于 2016-04-12T10:10:12.197 に答える