エクスポート/インポートの書き方

名前列挙したエクスポート文は、ファイルの先頭でも最後でもいいが、ファイルの先頭を推奨。最後だと、そこにあるのを見過ごす可能性があるし、長いファイルをスクロールする手間もイヤだ。メタ的情報は先頭に書け。



import * as say from './say.js';

↑だとインポートされて使うモノの名前が不明。エクスポートと同じ構文でエクスポートも書くと対応関係が取りやすいし、メタ的情報としても読みやすい。

上の方式だと、say. で修飾しないとアクセスできない。sayからのモノという目印にはなるが、一般には面倒なだけ。



インポート側での名前の個別リネームの as も使わない。混乱の原因になる。エクスポート側ではリネームしてかまわない。

export default された名前は import 好きな名前 fro モジュール でロードできるが、構文的に混乱(ブレイスの有る無しの勘違い)の原因になるし、やめたほうがいい。

export default が実は "default" という名前を使っていることも非常に紛らわしい。プロパティ名には使えるが、キーワードでもあるし、とか、鬱陶しい! default という名前にリネームするとかのバッドノウハウもあるし。以下の2つは同じ。

import User from './user.js';

new User('John');
import * as user from './user.js';

let User = user.default;
new User('John');

詳細は:

デフォルトエクスポートという機能は「なかったもの」として扱うといいだろう。