why typescript

GiseleΒ·2021λ…„ 7μ›” 11일
0

νƒ€μž…μŠ€ν¬λ¦½νŠΈλž€?

TypeScriptλŠ” 컴파일-νƒ€μž„ νƒ€μž… κ²€μ‚¬μžκ°€ μžˆλŠ” JavaScript의 λŸ°νƒ€μž„μž…λ‹ˆλ‹€.

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ— νƒ€μž… 을 λΆ€μ—¬ν•œ μ–Έμ–΄λ‹€.
  • 정적 νƒ€μž… κ²€μ‚¬μž λ‘œμ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κΈ° 전에 κ°’μ˜ μ’…λ₯˜λ₯Ό 기반으둜 ν”„λ‘œκ·Έλž¨μ˜ 였λ₯˜λ₯Ό μ°ΎλŠ”λ‹€.
  • μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ˜ λŸ°νƒ€μž„ νŠΉμ„± 을 μ ˆλŒ€ λ³€ν™”μ‹œν‚€μ§€ μ•ŠλŠ”λ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ μ»΄νŒŒμΌλŸ¬κ°€ μ½”λ“œ 검사λ₯Ό 마치면 νƒ€μž…μ„ μ‚­μ œν•΄μ„œ 결과적으둜 '컴파일된' μ½”λ“œλ₯Ό λ§Œλ“ λ‹€. 즉 μ½”λ“œκ°€ ν•œλ²ˆ 컴파일되면, 결과둜 λ‚˜μ˜¨ 일반 JS μ½”λ“œμ—λŠ” νƒ€μž… 정보가 μ—†λ‹€.
  • TypeScriptλŠ” Javascript의 μƒμœ„ λ ˆμ΄μ–΄ λ‹€. Javascript의 κΈ°λŠ₯을 μ œκ³΅ν•˜λ©΄μ„œ κ·Έ μœ„μ— 자체 λ ˆμ΄μ–΄λ₯Ό μΆ”κ°€ν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ›μ‹œνƒ€μž…(string, number, object, undefined λ“±)을 κ°€μ§€κ³  μžˆμ§€λ§Œ, 전체 μ½”λ“œλ² μ΄μŠ€μ— μΌκ΄€λ˜κ²Œ ν• λ‹Ήλ˜μ—ˆλŠ”μ§€λŠ” 미리 확인해주지 μ•ŠλŠ”λ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” 이 λ ˆμ΄μ–΄λ‘œμ„œ λ™μž‘ν•œλ‹€.
  • 클래슀, μΈν„°νŽ˜μ΄μŠ€, λͺ¨λ“ˆ λ“±μ˜ κ°•λ ₯ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μˆœμˆ˜ν•œ 객체 μ§€ν–₯ μ½”λ“œ λ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.

μž₯점

μ—λŸ¬μ˜ 사전 λ°©μ§€

ν•¨μˆ˜, μ»΄ν¬λ„ŒνŠΈ λ“±μ˜ νƒ€μž…μ„ μΆ”λ‘ ν•  수 μžˆμ–΄ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šμ•„λ„ IDE μƒμ—μ„œ λ°”λ‘œ μ•Œ 수 μžˆλ‹€.

μ½”λ“œ κ°€μ΄λ“œ 및 μžλ™ μ™„μ„±

μžλ™μ™„μ„±μ΄ ꡉμž₯히 μž˜λœλ‹€. ν•¨μˆ˜λ₯Ό μ‚¬μš© ν•  λ•Œ ν•΄λ‹Ή ν•¨μˆ˜κ°€ μ–΄λ–€ νŒŒλΌλ―Έν„°λ₯Ό ν•„μš”λ‘œ ν•˜λŠ”μ§€, 그리고 μ–΄λ–€ 값을 λ°˜ν™˜ν•˜λŠ”μ§€ μ½”λ“œλ₯Ό λ”°λ‘œ 열어보지 μ•Šμ•„λ„ μ•Œ 수 μžˆλ‹€.

ν”„λ‘œκ·Έλž¨ λΆ€λΆ„ κ°„μ˜ 더 λͺ…ν™•ν•œ 톡신

λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈμ˜ 경우 ν•΄λ‹Ή μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜κ²Œ 될 λ•Œ props에 무엇을 μ „λ‹¬ν•΄μ€˜μ•Όν•˜λŠ”μ§€, JSXλ₯Ό μž‘μ„±ν•˜λŠ” κ³Όμ •μ—μ„œ λ°”λ‘œ μ•Œ 수 있고, μ»΄ν¬λ„ŒνŠΈ λ‚΄λΆ€μ—μ„œλ„ μžμ‹ μ˜ propsλ‚˜ state에 μ–΄λ–€ 값이 μžˆλŠ”μ§€, redux의 store μ•ˆμ— μ–΄λ–€ μƒνƒœκ°€ λ“€μ–΄μžˆλŠ”μ§€ λ°”λ‘œ μ•Œ 수 μžˆλ‹€.

νƒ€μž…μŠ€ν¬λ¦½νŠΈ ν”„λ‘œμ νŠΈ μ‹œμž‘ν•˜κΈ°

  1. νƒ€μž…μŠ€ν¬λ¦½νŠΈ 파일 생성 및 μž‘μ„±
    .ts ν™•μž₯자
// index.ts
function sum(a: number, b: number): number {
  return a + b;
}

sum(10, 20);
  1. νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ„€μΉ˜
    $ npm i typescript -g
  2. μžλ°”μŠ€ν¬λ¦½νŠΈ 컴파일
    $ tsc index.ts

νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ„€μ • 파일 μ˜΅μ…˜

tsconfig.json

μ˜ˆμ‹œ]

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true,
    "noImplicitAny": true // μ•”μ‹œμ μœΌλ‘œ μ„ μ–Έλ˜μ—ˆλŠ”λ° any둜 μΆ”λ‘ λ˜λ©΄ μ—λŸ¬ λ°œμƒ
  }
}

πŸ“‘ referece

profile
ν•œμ•½μ€ 거듀뿐

0개의 λŒ“κΈ€