πŸ“ƒTypeScriptλž€?

joonΒ·2022λ…„ 4μ›” 2일
0

Typescript

λͺ©λ‘ 보기
1/9
  • TS μ•ˆμ „ν•˜κ³  예츑 κ°€λŠ₯ν•œ μ½”λ“œ κ΅¬ν˜„μ— μ΄ˆμ μ„ 맞좘 JS의 μƒμœ„ 집합(superset)μ–Έμ–΄ μž…λ‹ˆλ‹€.
  • κ°€μž₯ 큰 νŠΉμ§•μ€ κΈ°μ‘΄ JS에 Type System을 μ μš©ν•œ κ²ƒμž…λ‹ˆλ‹€.
  • TS둜 μž‘μ„±λœ μ½”λ“œλŠ” TS 컴파일러(tsc)λ₯Ό 톡해 JS λ³€ν™˜λ˜κ³  이후 μ‹€ν–‰λ©λ‹ˆλ‹€.
  • TS 이외에도 Decorators와 같은 λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

TypeScript = JavaScript + Type System


πŸ“ƒ Type System 1/2

βœ” TS의 κ°€μž₯ 큰 νŠΉμ§•μ€ JS의 νƒ€μž… 체계에 정적(static typed) νƒ€μž…μ„ μ μš©ν•  수 μžˆλ„λ‘ ν•œ κ²ƒμž…λ‹ˆλ‹€.
βœ” JS은 동적(dynamic typed) νƒ€μž… μ²΄κ³„μ˜ μ–Έμ–΄λ‘œ λ³€μˆ˜μ— νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
βœ” 동적 νƒ€μž… μ²΄κ³„λŠ” ν”„λ‘œκ·Έλž¨μ— μœ μ—°μ„±μ„ μ œκ³΅ν•˜μ§€λ§Œ λ³€μˆ˜μ— ν• λ‹Ήλœ 값을 읽어 μ‚¬μš©ν•˜λŠ” λ‹¨κ³„μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
βœ” TSλŠ” λ³€μˆ˜, νŒŒλΌλ―Έν„°μ— νƒ€μž…μ„ 지정할 수 있으며 μ„ μ–Έλœ νƒ€μž…μ˜ 값이 μ•„λ‹Œ 경우 μ—λŸ¬λ₯Ό λ°œμƒν•©λ‹ˆλ‹€.

πŸ“ƒ Type System 2/2

βœ” TSλŠ” 정적 νƒ€μž…μ„ μ§€μ–΄γ…œγ„΄ν•©λ‹ˆλ‹€. λ³€μˆ˜μ˜ μ •μ˜μ™€ ν•¨κ»˜ λŒ€μž…ν•  κ°’μ˜ νƒ€μž…μ„ ν•¨κ²Œ μ§€μ •ν•©λ‹ˆλ‹€.
βœ” λ³€μˆ˜λ₯Ό μ •μ˜ν•˜λ©΄μ„œ νƒ€μž…μ„ ν•¨κ»˜ μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή νƒ€μž…μ˜ λ°μ΄ν„°λ§Œ λŒ€μž… κ°€λŠ₯ν•˜λ©° λ‹€λ₯Έ νƒ€μž…μ˜ 값을 λŒ€μž…ν•˜λ©΄ 컴파일 μ‹œμ μ— μ—λŸ¬κ°€ λ°œμƒν•©λ‹ˆλ‹€.
βœ” λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜, λ°˜ν™˜κ°’μ˜ μ •μ˜μ—λ„ λ™μΌν•œ μ‹œμŠ€ν…œμ„ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
βœ” λ§€κ°œλ³€μˆ˜μ— νƒ€μž…μ„ μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή νƒ€μž…μ˜ 데이터λ₯Ό 전달 인자둜 ν•˜λ©° λ°˜ν™˜ 값도 λ™μΌν•©λ‹ˆλ‹€.

πŸ“ƒ Type Inference νƒ€μž…μΆ”λ‘ 

βœ” μ •μ μœΌλ‘œ νƒ€μž…μ„ λͺ…μ‹œν•˜μ§€ μ•Šκ³  λŒ€μž…ν•˜λŠ” 값을 톡해 νƒ€μž…μ„ μœ μΆ”ν•΄ κ²°μ •ν•˜λŠ” 것이 νƒ€μž… μΆ”λ‘  μž…λ‹ˆλ‹€.
βœ” 기본적으둜 λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό ν•¨κ»˜ 값을 λŒ€μž…ν•˜λŠ” 경우 ν•΄λ‹Ή λ³€μˆ˜λŠ” νƒ€μž… μΆ”λ‘ μœΌλ‘œ 인해 λŒ€μž…λ˜λŠ” κ°’μ˜ νƒ€μž…μ„ κ°–μŠ΅λ‹ˆλ‹€.
βœ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  같은 μ½”λ“œ λΌμΈμ—μ„œ νŠΉμ • 값을 λŒ€μž…ν•˜λ©΄ TSλŠ” λŒ€μž…κ°’μ˜ νƒ€μž…μ„ μœ μΆ”ν•΄ λ³€μˆ˜μ˜ νƒ€μž…μ„ ν™•μ •ν•©λ‹ˆλ‹€.
βœ” λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό κ°’μ˜ λŒ€μž…μ„ λ‹€λ₯Έ μ½”λ“œ λΌμΈμ—μ„œ μ§„ν–‰ν•˜λ©΄ ν•΄λ‹Ή λ³€μˆ˜λŠ” any νƒ€μž…μ˜ λ³€μˆ˜κ°€ λ©λ‹ˆλ‹€.

0개의 λŒ“κΈ€