2.Typescript

REPL(Read-Eval-Print-Loop)

ν„°λ―Έλ„μ—μ„œ κ°„λ‹¨ν•˜κ²Œ REPL을 μ“°κ³  μ‹ΆμœΌλ©΄ ts-nodeλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

npx ts-node

Interface vs Type

Interface와 Type Alias λ‹€μ†Œ λΉ„μŠ·ν•΄λ³΄μ΄λŠ” 것은 μ‚¬μ‹€μ΄λ‚˜ μ‚¬μš©μž μ •μ˜ νƒ€μž…μ΄ ν•  수 μ—†λŠ” 것을 μΈν„°νŽ˜μ΄μŠ€λŠ” ν•  수 μžˆλ‹€. ν•  수 μžˆλŠ” 것 쀑 ν•˜λ‚˜λŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” 선언을 병합할 수 μžˆλ‹€λŠ” 점이닀.

μ•„λž˜μ˜ νƒ€μž…λ“€μ€ λ‚΄κ°€ ν˜„μž¬ μ‹€λ¬΄μ—μ„œ μ‚¬μš©ν•˜κ³  μžˆλŠ” ν”„λ‘œλͺ¨μ…˜ νƒ€μž…λ“€ 쀑 일뢀뢄을 κ°€μ Έμ™”λ‹€.

Interface

μΈν„°νŽ˜μ΄μŠ€λŠ” λͺ…μ‹œμ μœΌλ‘œ ν™•μž₯을 μ‚¬μš©ν•΄μ„œ μ •μ˜λ₯Ό 해쀄 μˆ˜λ„ μžˆλ‹€.

export interface PromotionCoupon {
  promoId: string,
  name: string,
  issuanceType: PromotionIssuance,
  createdAt: string,
  expiryAt: string,
  code: string,
  discountType: PromotionDiscount,
  discountRate: number,
}

export interface PromotionCouponList extends PromotionCoupon {
  targetCount: number,
  issuanceCount: number,
}

또 Type Aliasμ—μ„œ ν•˜μ§€ λͺ»ν•˜λŠ” μ„ μ–Έ 병합을 ν•  수 μžˆλ‹€.

μœ„μ™€ 같이 μ„ μ–Έ λ˜μ—ˆμ„ λ•Œ μΈν„°νŽ˜μ΄μŠ€λŠ” 였λ₯˜κ°€ λ‚˜μ§€ μ•ŠλŠ”λ‹€.

Type

νƒ€μž…μ€ λ³‘ν•©ν•˜κ³ μž ν•˜λŠ” νƒ€μž…κ³Ό & 기호λ₯Ό ν™œμš©ν•΄μ„œ νƒ€μž… 병합이 κ°€λŠ₯ν•˜λ‹€.

νƒ€μž…μ—μ„œλŠ” 였λ₯˜κ°€ λ°œμƒν•œλ‹€.

νƒ€μž… μΆ”λ‘ κ³Ό νƒ€μž… 단언

νƒ€μž… μΆ”λ‘ 

μœ„μ™€ 같이 x에 λŒ€ν•œ νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•Šλ”λΌλ„ numberνƒ€μž…μœΌλ‘œ y에 λŒ€ν•œ νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•Šλ”λΌλ„ stringνƒ€μž…μœΌλ‘œ κ°„μ£Όλœλ‹€.

νƒ€μž… 단언

두 방법 λͺ¨λ‘ κ²°κ³ΌλŠ” λ™μΌν•˜λ‹€. ν•˜μ§€λ§Œ JSX와 ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λŠ” as λ¬Έλ²•λ§Œ ν—ˆμš©λœλ‹€.

보톡 JSXμ—μ„œ 많이 μ“°λŠ” νƒ€μž… λ‹¨μ–Έμ—λŠ” divνƒœκ·Έμ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν•œ μƒνƒœμ—μ„œ ν•΄λ‹Ή divμ•ˆμ˜ inputμ—μ„œ 값을 가져와야 ν•˜λŠ” κ²½μš°μ— νƒ€μž… 단언을 많이 μ‚¬μš©ν–ˆλ‹€.

Union Type vs Intersection Type

Union Type

μœ λ‹ˆμ˜¨ νƒ€μž…(Union Type)은 Aμ΄κ±°λ‚˜ B이닀 λΌλŠ” 의미의 νƒ€μž…μ΄λ‹€.

보톡 μ§€μ •λœ κ°’ μ΄μ™Έμ˜ 값이 λ“€μ–΄κ°€μ§€ μ•Šμ•„μ•Ό ν•  λ•Œ μœ λ‹ˆμ˜¨ νƒ€μž…μ„ μ§€μ •ν•΄μ„œ 많이 μ‚¬μš©ν•˜λŠ” νŽΈμ΄λ‹€.

Intersection Type

μΈν„°μ„Ήμ…˜ νƒ€μž…(Intersection Type)은 μ—¬λŸ¬ νƒ€μž…μ„ λͺ¨λ‘ λ§Œμ‘±ν•˜λŠ” ν•˜λ‚˜μ˜ νƒ€μž…μ΄λ‹€.

Optional Parameter

JavaScriptμ—μ„œλŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜μ˜€μ„ λ•Œ, λŸ°νƒ€μž„ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šκ³  undefined 값을 μ–»κ²Œ λœλ‹€.

References

Last updated