//------ main.js ------ import * as lib from 'lib'; console.log(lib.square(11)); // 121 console.log(lib.diag(4, 3)); // 5
default exports
node 개발자는 변수 하나만 export 하는 등의 방식이 빈번히 사용되는데, front end 개발자의 경우는 constructor나 class를 export 하는 경우가 많다. 이런 경우 하나의 module이 하나의 export만 갖는 경우가 되는데 이런 때 사용할 수 있는 것이 default exports 이다.
1 2 3 4 5 6 7 8 9 10 11 12
//------ myFunc.js ------ export default function () { ... };
//------ main1.js ------ import myFunc from 'myFunc'; myFunc(); //------ MyClass.js ------ export default class { ... };
//------ main2.js ------ import MyClass from 'MyClass'; let inst = new MyClass();
es6에선 _가 default exports를 의미하며, each나 forEach는 named exports를 의미한다. 따라서 다음과 같이 default exports와 named exports를 동시에 얻는 방법도 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12
//------ underscore.js ------ export default function (obj) { ... }; export function each(obj, iterator, context) { ... } export { each as forEach };
//------ main.js ------ import _, { each } from 'underscore'; ...