Node.js & TypeScript

[TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ Interface

martinooo 2022. 10. 25. 11:15

๐Ÿคณ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