Node.js & TypeScript

[TypeScript] νƒ€μž…μŠ€ν¬λ¦½νŠΈ Interface

martinooo 2022. 10. 25. 11:15
728x170

🀳TypeScript Interface


  • μΈν„°νŽ˜μ΄μŠ€λŠ” μƒν˜Έ 간에 μ •μ˜ν•œ 약속 ν˜Ήμ€ κ·œμΉ™μ„ λ§ν•œλ‹€. 
  • 일반적으둜 νƒ€μž… 체크λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λ©° λ³€μˆ˜, ν•¨μˆ˜, ν΄λž˜μŠ€μ— μ‚¬μš©ν•  수 μžˆλ‹€. 
  • 직접 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μ—†κ³  λͺ¨λ“  λ©”μ„œλ“œκ°€ 좔상 λ©”μ„œλ“œμ΄λ‹€. 
  • TSμ—μ„œλ§Œ interfaceλ₯Ό μ§€μ›ν•œλ‹€. 

🐱‍πŸ‘“ Interface μ‚¬μš© 이유


  • νƒ€μž…μ˜ 이름을 짓고 μ½”λ“œ μ•ˆμ˜ 계약을 μ •μ˜ 
  • ν”„λ‘œμ νŠΈ μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•˜λŠ” μ½”λ“œμ˜ 계약을 μ •μ˜ν•˜λŠ” κ°•λ ₯ν•œ 방법이닀. 
    • 객체의 μŠ€νŽ™
    • ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°
    • ν•¨μˆ˜μ˜ μŠ€νŽ™(νŒŒλΌλ―Έν„°, λ°˜ν™˜ νƒ€μž… λ“±)
    • λ°°μ—΄κ³Ό 객체에 μ ‘κ·Όν•˜λŠ” 방식 
    • 클래슀 
     

🀷‍♂️기본 예제


🐱‍πŸ‘“ Properties


  • μ»΄νŒŒμΌλŸ¬λŠ” ν”„λ‘œνΌν‹°μ˜ 두 가지 μš”μ†Œλ₯Ό κ²€μ‚¬ν•œλ‹€. 
    • ν•„μˆ˜μš”μ†Œ ν”„λ‘œνΌν‹°μ˜ 유무 
    • ν”„λ‘œνΌν‹° νƒ€μž… 
  • μ˜ˆμ•½μ–΄λ‘œ ν”„λ‘œνΌν‹°λ₯Ό μ„Έλ°€ν•˜κ²Œ μ»¨νŠΈλ‘€ν•  수 μžˆλ‹€. 
    • ? : Optional Properties
    • readOnly
     

🀦‍♂️ Optional Properties

  • ν”„λ‘œνΌν‹° μ„ μ–Έ μ‹œ 이름 끝이 ? λ₯Ό λΆ™μ—¬μ„œ μ‚¬μš© 
  • μΈν„°νŽ˜μ΄μŠ€μ— μ†ν•˜μ§€ μ•ŠλŠ” ν”„λ‘œν„°ν”Όμ˜ μ‚¬μš©μ„ λ°©μ§€ν•˜λ©΄μ„œ, μ‚¬μš© κ°€λŠ₯ν•œ ν”„λ‘œνΌν‹°λ₯Ό κΈ°μˆ ν•  λ•Œ μ‚¬μš©ν•œλ‹€. 

🀦‍♂️ readOnly

  • 객체가 처음 생성될 λ•Œλ§Œ κ°’ 섀정이 κ°€λŠ₯ν•˜κ³  이후 μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€. 
  • ν”„λ‘œνΌν‹° 이름 μ•žμ— readOnlyλ₯Ό λΆ™μ—¬ μ‚¬μš©ν•œλ‹€. 

🐱‍πŸ‘“ Interface  ν™•μž₯


  • μΈν„°νŽ˜μ΄μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€ κ°„μ˜ ν™•μž₯이 κ°€λŠ₯ν•˜λ‹€. 
  • extends ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μΈν„°νŽ˜μ΄μŠ€ λ˜λŠ” 클래슀λ₯Ό 상속 받을 수 μžˆλ‹€. 

 

πŸ‘€ μ°Έκ³ 


https://lakelouise.tistory.com/187

 

[TypeScript] νƒ€μž…μŠ€ν¬λ¦½νŠΈ μΈν„°νŽ˜μ΄μŠ€(Interface), Strategy pattern

🎯 νƒ€μž…μŠ€ν¬λ¦½νŠΈ Interface μΈν„°νŽ˜μ΄μŠ€λŠ” μƒν˜Έ 간에 μ •μ˜ν•œ 약속 ν˜Ήμ€ κ·œμΉ™μ„ μ˜λ―Έν•œλ‹€. 일반적으둜 νƒ€μž… 체크λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λ©° λ³€μˆ˜, ν•¨μˆ˜, ν΄λž˜μŠ€μ— μ‚¬μš©ν•  수 μžˆλ‹€. 직접 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수

lakelouise.tistory.com

https://poiemaweb.com/typescript-interface

κ·Έλ¦¬λ“œν˜•