2017-08-04 20 views
3

私はいくつかの機能を持っており、それらを外部のjsファイルに保存したいと考えています。例えば。 functions.js ES6のエクスポートとインポートの名前は?

var double = function(x) { 
    return x + x; 
} 

export { double }; 

はその後、私のメインのjsファイルに:

import double from './functions'; 

... 

double(2) 

私はこのエラーを取得する:

:私はライン44を読ん

Uncaught TypeError: (0 , c.default) is not a function 
    at bundle.min.js:44 

(0, _functions2.default)(2); 

なぜでしょうか?私は何を逃したのですか?

+1

'export {double};正しい構文ですか? 'export double;'ではありませんか? ---そうでなければ、 'double.double(2)'のように使う必要があります。 – evolutionxbox

+1

@evolutionxbox 'export double;'は誤った構文です。 –

+0

@YuryTarabankoは 'default'を必要としますか? – evolutionxbox

答えて

7

デフォルトのエクスポートと名前付きのエクスポートが混乱しています。

export default double; 

その後、あなたはこの理由があることであるimport double from './functions':

をすることができます:あなたは唯一の輸出を持っている場合は、import { double } from './functions';

が、それはデフォルトのエクスポートを使用するのが好ましいですしなければならないexport { double }

あなたの場合名前付きエクスポートを使用すると、モジュールの一部だけをインポートできます。たとえば、次のように

export function add (a, b) { return a + b; } 
export function subtract (a, b) { return a - b; } 

あなたはその後、import { add } from './math.js';subtractをインポートせずにすることができます。

ただし、モジュールから1つの関数だけをエクスポートする場合は、デフォルトのエクスポートが便利です。

+0

私は見る。今私は知っている!ありがとう! :-D – laukok

1

用途:

var double = function(x) { 
    return x + x; 
} 

export {double}; 

import {double} from './functions'; 

それとも

輸出デフォルトのダブル。 "./functions.js" からダブル

インポート。

関連する問題