Skip to content

πŸ’Ÿ [4μž₯] νƒ€μž… 쒁히기의 방식(νƒ€μž… κ°€λ“œvs νƒ€μž… 단언)

hyeyoonS edited this page May 23, 2024 · 3 revisions
const metaData: MetadataProps = {
	author: "μ—°μš°",
	createdAt: 2024-03-23,
	studiedAt: 2024-03-22,
	chapter: 4,
	description: "νƒ€μž… 쒁히기의 방식(νƒ€μž… κ°€λ“œvs νƒ€μž… 단언)"
}

νƒ€μž…μ„ μ’νžˆλŠ” λ°©λ²•μ—λŠ” μ±…μ˜ νƒ€μž… κ°€λ“œ 외에 νƒ€μž… 단언(as)도 μžˆλŠ”λ°μš”.
λ‘˜μ˜ 비ꡐ와 개인적인 생각을 쑰금 μ μ–΄λ΄…λ‹ˆλ‹€!

πŸ’«νƒ€μž… κ°€λ“œ

  • λŸ°νƒ€μž„μ— κ°’μ˜ νƒ€μž…μ„ κ²€μ‚¬ν•˜μ—¬ νƒ€μž… μ—λŸ¬λ₯Ό μž‘μ•„λ‚Ό 수 μžˆμ–΄
  • λ”°λΌμ„œ νƒ€μž…μ˜ μ•ˆμ •μ„±μ„ 보μž₯ν•  수 μžˆμ–΄
  • μ½”λ“œκ°€ 길어지고 λ³΅μž‘ν•œ 상황에 쑰건을 μ™„λ²½ν•˜κ²Œ μ„Έμš°κΈ°κ°€ μ–΄λ €μ›Œ

πŸ’«νƒ€μž… 단언

  • TS의 좔둠보닀 개발자 μž…μž₯μ—μ„œ κ°’μ˜ νƒ€μž…μ— λŒ€ν•΄ 더 많이 μ•Œκ³  μžˆμ„ λ•Œ, 단언을 톡해 νƒ€μž…μ„ μž¬μ •μ˜ ν•  수 μžˆμ–΄
  • 좔둠이 μ œλŒ€λ‘œ λ˜μ§€ μ•ŠλŠ” κ²½μš°μ—λ§Œ κ³¨λΌμ„œ μ‚¬μš©ν•  수 μžˆκΈ°μ— μ‰½κ²Œ μ‚¬μš© κ°€λŠ₯ν•΄
  • 반면 νƒ€μž…μ˜ μ•ˆμ •μ„±μ„ 보μž₯ν•  수 μ—†μ–΄(잘λͺ»λœ 단언을 ν•˜λŠ” 경우 λŸ°νƒ€μž… μ—λŸ¬κ°€ λ°œμƒν•  수 μžˆμ–΄)

😎결둠

  • νƒ€μž…μ„ ν™•μ‹€νžˆ μ•„λŠ” κ²½μš°μ—λŠ” νƒ€μž… 단언을 μ‚¬μš©ν•  μˆ˜λŠ” μžˆμ§€λ§Œ,
  • 일반적으둜 νƒ€μž… κ°€λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 편이 μ•ˆμ •μ„± λ©΄μ—μ„œ μ’‹μ•„

πŸ˜‰κ°œμΈμ μΈ 생각

μ›¬λ§Œν•˜λ©΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ 좔둠을 μž˜ν•˜κΈ° λ•Œλ¬Έμ— νƒ€μž… 쒁히기λ₯Ό 자주 μ‚¬μš©ν•˜μ§€λŠ” μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 그리고 좔둠이 λ§ˆμŒλŒ€λ‘œ μ•ˆλ˜λŠ” κ²½μš°λŠ” 보톡 상황이 λ³΅μž‘ν•œ 경우(ν˜Ήμ€ 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” 경우)λΌμ„œ λΉ λ₯Έ κ°œλ°œμ„ μœ„ν•΄ μŠ΅κ΄€μ μœΌλ‘œ νƒ€μž… 단언을 ν‰μ†Œμ— 거의 μ‚¬μš©ν•˜κ³  있던 것 κ°™μŠ΅λ‹ˆλ‹€. ν˜„μ—…μ—μ„œλŠ” λ‚˜λŠ” 이 값이 이 νƒ€μž…μΈ 것이 λ‹Ήμ—°ν•œλ° 좔둠이 μ•ˆλ˜λŠ” κ²½μš°μ— 상황이 λ³΅μž‘ν•΄μ„œ νƒ€μž… κ°€λ“œλ₯Ό μ„€μ •ν•˜λ©΄μ„œ μ‹œκ°„μ΄ λ„ˆλ¬΄ 였래 κ±Έλ¦°λ‹€λ©΄, 차라리 λΉ λ₯΄κ²Œ 단언을 ν•˜κ³  λ„˜μ–΄κ°€λŠ”κ²Œ μ‹œκ°„ 효율 λ©΄μ—μ„œ 쒋은 것 같기도 ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 쒋은 κ°œλ°œμžκ°€ 되기 μœ„ν•΄μ„œ, 근본적으둜 좔둠이 μ•ˆλ˜λŠ” 상황을 λ§Œλ“  원인(ex. μ»΄ν¬λ„ŒνŠΈμ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 잘 μ„€κ³„ν–ˆλŠ”μ§€, 라이브러리의 μΈν„°νŽ˜μ΄μŠ€κ°€ μ–΄λ–»κ²Œ μ„€κ³„λ˜μ–΄μžˆλŠ”μ§€)을 κ°œμ„ ν•΄μ„œ νƒ€μž… 단언을 ν•΄μ•Όλ§Œ ν•˜λŠ” 상황이 λ˜λ„λ‘ μ•ˆ μ˜€λ„λ‘ ν•˜λŠ”κ²Œ 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€!


μ°Έκ³  https://velog.io/@dpldpl/%ED%83%80%EC%9E%85-%EA%B0%80%EB%93%9C%EC%99%80-%ED%83%80%EC%9E%85-%EB%8B%A8%EC%96%B8-TypescriptType-Assertion-vs-Type-Guard https://pandaquests.medium.com/difference-between-type-guards-and-type-assertions-in-typescript-65e7d6625cd4

Clone this wiki locally