[TypeScript] 01 - Intro

Young-masonΒ·2021λ…„ 2μ›” 13일
0
post-thumbnail

🌟 νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό ν•™μŠ΅ν•˜λ©΄μ„œ 배운 λ‚΄μš©λ“€μ„ λΈ”λ‘œκ·Έμ— κΈ°λ‘ν•©λ‹ˆλ‹€ (feat. λ“œλ¦Όμ½”λ”©)

✐ TypeScriptλž€?

Superset of JavaScript

β†’ μžλ°”μŠ€ν¬λ¦½νŠΈμ— Type을 λ”ν•΄μ„œ μ»΄νŒŒμΌμ‹œ νƒ€μž…μ— κ΄€λ ¨λœ μ—λŸ¬λ₯Ό μž‘μ„ μˆ˜κ°€ μžˆλ‹€.

β†’ class, interface, generic을 ν™œμš©ν•˜μ—¬ κ°•λ ₯ν•œ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€

β†’ λͺ¨λ“  λΈŒλΌμš°μ € ν˜Έν™˜λ˜λ„λ‘ λ§Œλ“€ 수 μžˆλ‹€

β†’ ν΄λΌμ΄μ–ΈνŠΈ, μ„œλ²„ λͺ¨λ‘ κ°€λŠ₯

✐ κΈ°μ‘΄ JavaScript 의 νŠΉμ§•

λŸ°νƒ€μž„μ—μ„œ νƒ€μž…μ΄ κ²°μ •λœλ‹€ (Dynamically Typed)

β†’ μž₯점 : Easy, Flexible, Fast

β†’ 단점 : 가독성이 쒋지 μ•ŠμœΌλ©°, κ°œλ°œμ‹œμ— 이슈λ₯Ό μž‘μ•„λ‚΄λŠ” 것이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— μ‚¬μš©μžκ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‚¬μš©ν• λ•Œ μ—λŸ¬κ°€ ν„°μ§€λ―€λ‘œ μœ„ν—˜ν•˜λ‹€

β†’ EC6 이후 Class 문법이 λ„μž…λ˜μ—ˆμ§€λ§Œ λ‹€λ₯Έ 언어에 λΉ„ν•΄ 객체지ν–₯ κΈ°λŠ₯이 적닀

✐ TypeScriptκ°€ λœ¨λŠ” 이유

1. μ»΄νŒŒμΌμ‹œ νƒ€μž…μ΄ κ²°μ •λœλ‹€ (Statically Typed)

νƒ€μž…μ΄ μ •μ μœΌλ‘œ κ²°μ •λœλ‹€ (μ½”λ”©ν•  λ•Œ) νƒ€μž…μ—λŸ¬λ₯Ό μ¦‰κ°μ μœΌλ‘œ λ°›μ•„λ³Ό 수 μžˆλ‹€

β†’ κ°œλ°œμ‹œμ— μ‹€μ‹œκ°„μœΌλ‘œ μ—λŸ¬μ— λŒ€ν•œ 검사λ₯Ό 받을 수 μžˆμ–΄μ„œ μ•ˆμ •μ μ΄κ³  ν™•μž₯이 μ‰¬μš΄ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“€ 수 μžˆλ‹€

2. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° (Object-Oriented Programming)

  • Modularity
  • Reusabilit
  • Extensible
  • Maintainability

β†’ 생산성, 높은 퀄리티 μ½”λ“œ, λΉ λ₯Έ μ œν’ˆ μ™„μ„±

✐ TypeScript μ„ΈνŒ…

κΈ°λ³Έ μ„€μΉ˜

// Global 에 μ„€μΉ˜ν•˜κΈ°
npm install -g typescript

// ν”„λ‘œμ νŠΈ 내에 μ„€μΉ˜ν•˜κΈ°
npm install typescript --save-dev

λ…Έλ“œ ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•˜λ €λ©΄?

// 컴파일 : main.js 파일 생성 ν›„ node둜 μ‹€ν–‰
tsc main.ts
node main.js

// ts-node : λ…Έλ“œ ν™˜κ²½μ—μ„œ 컴파일과 싀행을 ν•œλ²ˆμ—
npm install -g ts-node
ts-node main.ts     

// ts-node watch : μ €μž₯ν•˜λ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— μžλ™μœΌλ‘œ λ°˜μ˜ν•΄μ€Œ
ts-node main.ts -watch
profile
Frontend Developer

0개의 λŒ“κΈ€