[Language/TypeScript] TypeScript๋ž€?!

2023. 7. 26. 11:19ใ†๐Ÿ”ค Language/TypeScript

TypeScript๋ž€?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋กœ Microsoft์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
JS์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์•ˆํ•˜์—ฌ ๋‚˜์˜จ ์–ธ์–ด.
JS ์–ธ์–ด ๊ทธ๋Œ€๋กœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์•ฝ 30๋…„ ์ •๋„์˜ ๊ธด ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ง„ JS Library๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์•ˆ์ •์„ฑ์„ ๊ฐ€์ ธ๋‹ค ์ค€๋‹ค๋Š” ์ด์ ์ด ์žˆ์–ด ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Œ.

๋“ฑ์žฅ๋ฐฐ๊ฒฝ

  • JS์˜ ํ•œ๊ณ„ ๊ทน๋ณต
    JS๋Š” ๋™์ ํƒ€์ž…์–ธ์–ด์ด๋‹ค.
    ๋™์  ์–ธ์–ด์˜ ํŠน์ง•์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ปดํ“จํ„ฐ์–ธ์–ด ์ฆ‰ ๊ธฐ๊ณ„์–ด๋กœ ๋ฐ”๊พธ๋Š” compiler์˜ ์ž‘๋™ ์‹œ์ ์ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ๋  ๋•Œ ์ด๋‹ค.
    ์ด ํŠน์ง•์— ์˜ํ•ด ์ฝ”๋“œ์— ์—๋Ÿฌ๊ฐ€ ์žˆ๋”๋ผ๋„ ์ผ๋‹จ ์‹คํ–‰์ด ๋œ ํ›„์—, ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์€ ํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค.
    ์ผ๋‹จ ์‹คํ–‰์ด ๋œ๋‹ค๋Š” ํŠน์ง• ๋•Œ๋ฌธ์— ํ›„์— ์—๋Ÿฌ๊ฐ€ ์ผ์–ด๋‚œ ๋ถ€๋ถ„์„ ์ฐพ๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กญ๊ณ , ์ถ”๊ฐ€๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์‰ฝ๊ฒŒ ๋ณ€ํ•˜๋Š” ํŠน์ง•๊นŒ์ง€ ๋”ํ•ด์ ธ
    ๋‚ด๊ฐ€ ์˜๋„ํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ•˜๋Š” ๋“ฑ ์—๋Ÿฌ๋ฅผ ํ†ต์ œํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ ์•ˆ์ •์„ฑ์ด ๋งค์šฐ ๋–จ์–ด์ง„๋‹ค.
    TS๋Š” ์ด๋Ÿฌํ•œ JS์˜ ๋ถˆ์•ˆ์ •์„ฑ์„ ๋ณด์™„ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•˜์˜€๋‹ค.

TS ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…

  1. Node.js ์„ค์น˜

    • nvm(node version manager)๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋ฉด ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ Node.js์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. typescirpt ์„ค์น˜

  3. Node.js ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

     npm init -y
  4. tsconfig.json ์ƒ์„ฑํ•˜์—ฌ, TS ํ”„๋กœ์ ํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

    tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true
  • --rootDir ./src
    ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค ํŒŒ์ผ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ๋กœ src ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ง€์ •
  • --outDir ./dist
    ์ปดํŒŒ์ผ์ด ๋œ ํŒŒ์ผ๋“ค์ด ๋“ค์–ด๊ฐ€๋Š” ๋””๋ ‰ํ† ๋ฆฌ: dist
  • --esModuleInterop
    CommonJS ๋ฐฉ์‹์˜ ๋ชจ๋“ˆ์„ ES๋ชจ๋“ˆ ๋ฐฉ์‹์˜ Import ๊ตฌ๋ฌธ์œผ๋กœ ๊ฐ€์ ธ์˜ด
  • strict true, allowJS true
    strict mode ๋ฐ JS ํ—ˆ์šฉ
  1. src root์— index.ts ํŒŒ์ผ ํ™•์ธ ํ›„, npm run

    npm run build
  2. TS ํŒŒ์ผ ์‹คํ–‰

    npm run start