๊ฐ์ ๐
๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฐ์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ๋ฐฉ์์ ์ฒ์ ์ ํ์ ๋ ์ดํด๊ฐ ๋์ง ์์๋ค. ํนํ default export์ named export ๋ผ๋ export ๋ฐฉ์๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ์ ์ ๋ฐ๋ฅธ ๋ฌธ๋ฒ ํธํ ๋๋ฌธ์ ๋ชจ๋ export์ import, require๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ํ๋ค์๋ค.
์ด ๋ฌธ์์์๋ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ default, named export ๊ฐ๊ฐ์
๊ตฌํํ ๋ค import
, require
ํค์๋ ๊ฐ๊ฐ์ ์ด์ฉํ์์ ๋ ๋ ํผ๋ฐ์ค
๋ณ์๊ฐ ์ด๋ค ๊ฐ์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํ๋ค.
์ง์ ํ์ธํด๋ณด์ ๐
์ฒซ ๋ฒ์งธ ํ ์คํธ ๐
๋จผ์ exportํ ํ ์คํธ ํด๋์ค๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ค.
// Named Export๋ฅผ ์ํ ํด๋์ค
export class NamedExportClass {
test() {
console.log("Named Export Class")
}
}
// Default Export๋ฅผ ์ํ ํด๋์ค: ํค์๋ default๋ฅผ ๊ฐ๋๋ค.
export default class DefaultExportClass {
test () {
console.log("Default Export Class")
}
}
์ด์ importํ๋ ์์ค ์ฝ๋๋ฅผ ๊ตฌํํด์ค๋ค tsc
๋ช
๋ น์ด๋ฅผ ํตํด
ํ์
์คํฌ๋ฆฝํธ ํ์ผ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก Trans-compile ํ๋ค.
import DefaultClass, {NamedExportClass} from './exportObj'
const defaultObj = new DefaultClass()
const namedObj = new NamedExportClass()
defaultObj.test()
namedObj.test()
์ด ๋, ๋์ฌ๊ฒจ ๋ด์ผํ ์ ์ export default class ...
๋ก ๊ตฌํํ ํด๋์ค์
์ด๋ฆ์ DefaultExportClass๊ฐ ์๋ DefaultClass
(์์ ์ด๋ฆ)์ผ๋ก ์ ํ์ฌ
importํ๋ค๋ ๊ฒ์ด๋ค. ์์ค ๋ด์ ์ด๋ฆ DefaultClass
์ด๋ฆ ๋์ ๋ค๋ฅธ
์ด๋ฆ์ ์ฌ์ฉํ์ฌ๋ ํ
์คํธ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
โ jsImport git:(master) โ tsc *.ts && node importTest
Default Export Class
Named Export Class
๋ ๋ฒ์งธ ํ ์คํธ ๐
์ด๋ฒ์๋ import
์์ require
ํค์๋๋ฅผ ์ด์ฉํด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด์.
import constObj = require('./exportObj')
console.log(constObj)
ํ ์คํธ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.
{ __esModule: true,
NamedExportClass: [Function: NamedExportClass],
default: [Function: DefaultExportClass] }
์ฆ, export ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ฐํํ๊ฒ ๋๋ค.
์ธ ๋ฒ์งธ ํ ์คํธ ๐
๊ทธ๋ ๋ค๋ฉด, ํด๋์ค๊ฐ ์๋ ๊ฐ์ฒด๋ฅผ defaul export
๋ก ์ ์ํ๋ฉด ์ด๋ป๊ฒ
๋ ๊น? ๊ธฐ์กด ์ฝ๋์์ new DefaultClass()
๋ ์คํ์ด ๋ถ๊ฐ๋ฅํ ์ฝ๋๊ฐ ๋๊ณ
DefaultClass
์์ฒด๊ฐ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค. ํ์ง๋ง require
๋ฅผ ์ด์ฉํด
๊ฐ์ ธ์จ constObj
๋ export
๋ฅผ ๊ฐ๋ฆฌํค๋ฏ๋ก ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
Default Export Class
Named Export Class
{ __esModule: true,
NamedExportClass: [Function: NamedExportClass],
DefaultExportClass: [Function: DefaultExportClass],
default: DefaultExportClass {} }
์ ๋ฆฌ ๐
๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด, require
๋ฅผ ์ด์ฉํด import๋ฅผ ํ ๊ฒฝ์ฐ์๋ export
๊ฐ์ฒด
์์ฒด๋ฅผ ๊ฐ์ ธ์ค๋ฉฐ, default export์ named export๋ฅผ ๊ตฌ๋ถํด์ ์ ๋๋ก
์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด import
๋ฅผ ์ด์ฉํด ๋๊ดํธ({ }
)๋ฅผ ์ด์ฉํด ์ฌ์ฉํ๋ค.