ES6モジュールとJavaScriptにおけるインポートとエクスポートの使用方法
ES2015(ES6)では、JavaScriptにモジュールの組み込みサポートがあります。CommonJSと同様に、各ファイルはそれ自体がモジュールです。オブジェクト、関数、クラス、または変数を外部に公開するには、それらをエクスポートし、必要な他のファイルでインポートするのが非常に簡単です。Angular 2はES6モジュールを多く使用しているため、文法はAngularで作業してきた人には非常に馴染みのあるものになるでしょう。文法は非常にわかりやすいです。
輸出
メンバーは一つずつエクスポートできます。エクスポートされていないものは、モジュールの外では直接利用できません:
export const myNumbers = [1, 2, 3, 4];
const animals = ['Panda', 'Bear', 'Eagle']; // Not available directly outside the module
export function myLogger() {
console.log(myNumbers, animals);
}
export class Alligator {
constructor() {
// ...
}
}
または、モジュールの最後に単一のステートメントで必要なメンバーをエクスポートすることもできます。
export { myNumbers, myLogger, Alligator };
エイリアスでのエクスポート
エクスポートされたメンバーに別名を付けることもできます。as キーワードを使用してください。
export { myNumbers, myLogger as Logger, Alligator }
デフォルトエクスポート
デフォルトエクスポートはdefaultキーワードを使って定義できます:
export const myNumbers = [1, 2, 3, 4];
const animals = ['Panda', 'Bear', 'Eagle'];
export default function myLogger() {
console.log(myNumbers, pets);
}
export class Alligator {
constructor() {
// ...
}
}
輸入
インポートは非常に簡単で、import キーワードを使用し、インポートするメンバーを波括弧で囲み、次に現在のファイルに対するモジュールの位置を指定します:
import { myLogger, Alligator } from 'app.js';
エイリアスを使用したインポート
インポート時にメンバーに別名を付けることもできます。
import myLogger as Logger from 'app.js';
全てのエクスポートされたメンバーをインポートしています
このようにモジュールによってインポートされるすべてのものをインポートできます。
import * as Utils from 'app.js';
これにより、ドット表記を使用してメンバーにアクセスできます:
Utils.myLogger();
デフォルトメンバーを持つモジュールのインポート
デフォルトメンバーに任意の名前を付けてインポートします。次の例では、Loggerがインポートされたデフォルトメンバーに付けられた名前です:
import Logger from 'app.js';
そして、デフォルトのメンバーの上に非デフォルトメンバーをインポートする方法は次のようになります。
import Logger, { Alligator, myNumbers } from 'app.js';
