์๋ ,
์ธ๋ถ (commonjs) ๋ชจ๋ "A"๋ฅผ ์์ฑํ ๋ค์ ๋ค๋ฅธ ๋ชจ๋ "B"์ ์ฝ๋์์ ๋ชจ๋ "A"๋ฅผ ์๊ตฌํ๋ import๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ณ์๋ฅผ ๋ชจ๋ "A"์ ํ์ผ๋ก ์ ์ธ ํ ์ ์์ต๋๊น?
์ด ์์ ์ ์ํํ๋ ค๋ ์ด์ ๋ ๋ชจ๋ "A"๊ฐ ์ฑ๊ธ ํค์ด๋๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ "A"์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ค๋ฅธ ๋ชจ๋ "B"์ ํด๋์ค ์์ฑ์์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์น "A"๋ชจ๋์ด import A = require ( "A")๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์จ ๊ฒ์ฒ๋ผ ์์ฑ์์ "A"๋ชจ๋์ ์ธ์๋ฅผ ์ ๋ ฅํ๊ณ ์ถ์ต๋๋ค.
๋ด๊ฐ ์ฑ๊ธ ํค ๋ชจ๋์ ์ํ๋ ์ด์ ๋์ด ๋ชจ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฑ์ ๊ด๋ฆฌํ๋ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ํฌํจ ํ ์ ์๊ณ , ๊ฐ์ ธ์ฌ ๋๋ง๋ค ๋ค์ ์ด๊ธฐํํ๋ ๊ฒ์ ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ ์ ์ฌ์ ์ธ "๋ ธ๋ ๋ชจ๋ ์บ์"๋ง๋ฒ์ ์์กดํ๊ธฐ๋ณด๋ค๋ ๊ทธ๊ฒ๋ค์ ์ ๋ฌํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค.
์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋ด๊ฐ ์ํ๋ ๊ฒ์ ๋ฌ์ฑ ํ ์์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๊ฐํ์ง๋ง ๊ฐ๋ฅํ๋ค๋ฉด ์ด๊ฒ์ ๊ฐ์ฅ ๋จ์ํ ๋๋์ ๋๋ค.
๊ฐ ์์น์์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ๋ชจ๋ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ A
๋ชจ๋ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ ํ ์์น์์๋ง ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ require
ํธ์ถ์ด ์์ฑ๋์ง ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด :
// B.ts
import s = require("./A");
var x: typeof s;
๋ฐฉ์ถ
var x;
์ด๊ฒ์ด ๊ทํ์ ์ง๋ฌธ์ ๋๋ตํฉ๋๊น?
์ค, ํ๋ฅญํฉ๋๋ค! ๊ทธ๊ฒ์ ๋ด ์ง๋ฌธ์ ํ์คํ ๋๋ตํฉ๋๋ค. ๋ฌธ์์์ ์ฐพ์ ์ ์์ผ๋ฏ๋ก ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. :)
์๋
์ฌ๋ฌ๋ถ,
๊ฐ์ ์ค์์๋ ์ง๋ฌธ์ด ์์ต๋๋ค. ์์ ์๋ฃจ์
์ ์๋ํ์ง๋ง ์ด์ ๋ ์๋ํ์ต๋๋ค.
webpack ๋ชจ๋์์ ํด๋์ค๋ฅผ ๊ฐ์ ธ์ค๊ณ ์์ต๋๋ค. parent import {A, B} from "parent";
์ด ํด๋์ค์ ๋ํ ์์ฑ์๋ฅผ ํธ์ถํ๊ณ ์ถ์ต๋๋ค. ๋๋ const a = A ({data : 1}); ์ปดํ์ผ์ TS ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ฐํ์ ์๋ฐ ์คํฌ๋ฆฝํธ์์``์ ํ ์ค๋ฅ A๋ ์์ฑ์๊ฐ ์๋๋๋ค.
์ฌ์ฉ์ ์ง์ ํ์์ ๋ง๋ค๊ณ devDependancies์ ์ถ๊ฐํด์ผํฉ๋๊น? ์๋๋ฉด ๋ด๋ณด๋ด๊ธฐ ๊ธฐ๋ณธ๊ฐ๊ณผ ๊ฐ์ ๋ด "๋ถ๋ชจ"๋ชจ๋์ ๋ด๋ณด๋ด๋ ํน์ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๊ฑด๋ฐฐ,
Sudeep
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ฐ ์์น์์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ๋ชจ๋ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ๋ฐ๋ผ์
A
๋ชจ๋ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ ํ ์์น์์๋ง ์ฌ์ฉ๋๋ ๊ฒฝ์ฐrequire
ํธ์ถ์ด ์์ฑ๋์ง ์์ต๋๋ค.์๋ฅผ ๋ค๋ฉด :
๋ฐฉ์ถ
์ด๊ฒ์ด ๊ทํ์ ์ง๋ฌธ์ ๋๋ตํฉ๋๊น?