Open1
[JavaScript]export default vs named export
結論
基本、named export
を使用すべき。
参照
理由
エクスポートファイル側で export default
によって関数やクラスを定義しているとインポートファイル側で名前を自由に変えることが出来てしまう。
具体例
export default
によってエクスポートとされているhelloName
関数は
main.js
ファイルとsub.js
ファイルによってインポートされ使用されているが
main.js
側でもsub.js
側でも自由に設定した名前でインポート出来てしまうのは望ましくない。
# infomation.js
const sayFullName = (fullName) => {
console.log(`My name is ${fullName}`)
}
export default sayFullName;
# main.js
import displayFullName from "./infomation.js";
displayFullName('noydmt');
# sub.js
import helloFullName from "./infomation.js";
helloFullName('noydmt');
仮にinfomation.js
内部のsayFullName
関数(= フルネームを名乗る関数)がsayFirstName
(= 名前を名乗る関数)に変更された時、main.js
、sub.js
にて自由に定義された関数名(それぞれdisplayFullName
、helloFullName
)はエラーにならず、不適切な関数名として残り続けてしまう可能性がある。