02. TypeScript

1. 였늘의 κ°•μ˜ μš”μ•½

  • λ³€μˆ˜μ— νƒ€μž…μ„ 미리 μ§€μ •

  • νƒ€μž…μ€ λ‚΄κ°€ λ§Œλ“€ μˆ˜λ„ 있음 (객체와 클래슀 κ·Έ 사이 μ–΄λ”˜κ°€)

  • interface vs Type (μ•„μƒ¬μ„ ν˜Έ)

  • generic = νƒ€μž… λ‚΄ νƒ€μž…μ— λŒ€ν•œ λ³€μˆ˜

2. 였늘 배운 것

2-1. νƒ€μž… μ§€μ •

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ: νƒ€μž…μ„ μ§€μ •ν•΄μ€Œ

  • JSμ—μ„œλŠ” νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•Šμ•„λ„ λ³€μˆ˜μ— 넣고싢은거 μ•„λ¬΄κ±°λ‚˜ 넣을 수 μžˆμ—ˆμ§€λ§Œ,

  • 보톡 λ‹€λ₯Έ μ–Έμ–΄μ—μ„œλŠ” λ³€μˆ˜μ— λ„£κΈ° 전에 이 λ³€μˆ˜μ— λ“€μ–΄κ°ˆ 데이터 νƒ€μž…μ„ μ•Œλ €μ€Œ

  • 막 μš”λŸ°μ‹μœΌλ‘œ

    int number = 10

    이제 JS에 Type을 λ„μž…ν•œ TSλŠ” μ΄λ ‡κ²Œ 써야됨

    let number: Number = 13;

    이제 였λ₯˜λ‚˜λŠ” μ½”λ“œ

    number = "μ—΄μ…‹";
    // error TS2322: Type 'string' is not assignable to type 'Number'.

2-2. ν•¨μˆ˜ νŒŒλΌλ―Έν„° μ§€μ •

  • ?: 둜 μžˆμ„μˆ˜λ„ μ—†μ„μˆ˜λ„ ν•œ νŒŒλΌλ―Έν„°λ₯Ό λ§Œλ“€ 수 μžˆμ§€λ§Œ κ·Έλ³΄λ‹€λŠ” μ•ˆλ“€μ–΄μ™”μ„ λ•Œ μ΄ˆκΈ°κ°’μ„ μ„€μ •ν•΄μ£ΌλŠ” 편이 μ’‹λ‹€.

  • μ˜ˆμ‹œ

  • μ—¬λŸ¬κ°œ 쀑에 ν•˜λ‚˜μΌ 수 μžˆλ‹€.

  • μ˜ˆμ‹œ

2-3. νƒ€μž…, μΈν„°νŽ˜μ΄μŠ€ μ»€μŠ€ν…€

  • interface vs Type (μ•„μƒ¬μ„ ν˜Έ)

  • interface = μž¬μ„ μ–Έ μ‹œ ν•„λ“œ 좔가됨

  • type = & μ—°μ‚°μžλ‘œ 두 νƒ€μž…μ˜ ꡐ집합 νƒ€μž… λ§Œλ“€ 수 있음

2-4. (λ‚˜λ₯Ό κ°€μž₯ ν˜Όλž€μŠ€λŸ½κ²Œ λ§Œλ“€μ—ˆλ˜) Generic

  • μΌμ’…μ˜ λ³€μˆ˜

  • νƒ€μž… λ‚΄μ—μ„œ νƒ€μž…μ„ μ§€μ •ν•  λ•Œ

  • μ™ΈλΆ€μ—μ„œ μ£Όμž…ν•  수 있게 ν•˜λŠ” νƒ€μž… λ³€μˆ˜

2-5. TS μ“°λŠ” 이유

  • VSC μžλ™μ™„μ„±

  • μ‹€μ‹œκ°„μœΌλ‘œ 였λ₯˜κ²€μ‚¬ ν•΄μ€Œ

  • 같은 좜처의 μ½”λ“œλ³΄λ‹€ μ™ΈλΆ€ 라이브러리 μ‚¬μš©ν•  λ•Œ 유용

  • 였래된 라이브러리의 경우, ~.d.ts 만 λ”°λ‘œ νŒ¨ν‚€μ§€λ‘œ μ œκ³΅λ˜κΈ°λ„ 함

3. 였늘 λŠλ‚€ 것

  • νšŒμ‚¬μ—μ„œ 혼자 κ³΅λΆ€ν•˜λŠλΌκ³  빨리 곡뢀해야 λœλ‹€λŠ” 압박감에 이해도 μ•ˆλ˜κ³ ,

  • μ œλŒ€ν˜Έ μ΄ν•΄ν–ˆλŠ”μ§€ λΆˆμ•ˆν–ˆλŠ”λ° μ΄λ ‡κ²Œ 훑어보기 κ°•μ˜ λ“€μœΌλ‹ˆκΉŒ μ•ˆμ‹¬μ΄ λœλ‹€.

  • 특히 generic 뢀뢄이 이해가 μ•ˆλμ—ˆλŠ”λ° 이제 정리가 λœλ‹€.

  • ν•œ 번 더 μ •λ¦¬ν•˜μžλ©΄, μ»€μŠ€ν…€ νƒ€μž… λ‚΄μ—μ„œ μ‚¬μš©λ˜λŠ” νƒ€μž… 듀을 ν•œ κΊΌλ²ˆμ— μ™ΈλΆ€μ—μ„œ ν†΅μ œν•˜λŠ” μΌμ’…μ˜ λ³€μˆ˜μž„.

Last updated