[S15] Narrowing
https://github.com/OneMoreBottlee/TypeScript-Master/tree/main/S15
TSμ ν΅μ¬
λͺ ννμ§ μμ νμ μ΄ μμ λ (μ λμ¨ νμ ) νμ μ μ’νλ κ³Όμ
typeof Guards

typeofλ₯Ό νμ©ν΄ νΉμ νμ μ λν λμμ μ€μ νλ€
Truthiness Guards

νμ μ 무λ₯Ό ν΅ν΄ μ€μ νλ€.

λ§€κ°λ³μκ° μ‘΄μ¬νλ©΄ λ¬Έμμ΄, μμΌλ©΄ null μ΄λΌλ 쑰건μ νμ©ν΄ νμ λ³ λμμ μ€μ νλ€.
Equality Narrowing

λλ± μ°μ°μλ₯Ό μ¬μ©ν΄ νμ μ μ’νλ€.
xμ νμ κ³Ό yμ νμ μμ λμΌν λΆλΆμ string μ΄λΌλ μ μ μ΄μ©νλ€.
in Narrowing
κ°μ²΄μ μ±μ§μ μ¬μ©ν΄ νμ μ μ’νλ€.

2κ°μ μΈν°νμ΄μ€μμ νΉμ ν μ μλ μμ±μ νμΈν΄ νμ μ μ’νλ€.
νμ μ λ§λ λμμ μ€μ νλ€.
instanceof Narrowing
instanceof μ°μ°μμ νΉμ§μ μ¬μ©ν΄ νμ μ μ’νλ€.

date μ νλ‘ν νμ μ²΄μΈ μμ Date κ° μμΌλ©΄ Date νμ
μλλ©΄ string

entity μ νλ‘ν νμ μ²΄μΈ μμ User κ° μμΌλ©΄ User νμ
μλλ©΄ Company
νμ λͺ μ
νμ μ€ν¬λ¦½νΈμλ§ μλ κΈ°λ₯ is OO

Cat μΈν°νμ΄μ€ / Dog μΈν°νμ΄μ€
νμ λͺ μ - animal μ΄ μΊ£μΌλ μ°Έμ΄ λ¦¬ν΄λλ ν¨μ
ν¨μλ₯Ό νμ©ν΄ μ°Έμ΄λ©΄ Cat νμ μλλ©΄ Dog νμ
νλ³ μ λμ¨
κ³΅ν΅ νλ‘νΌν°λ₯Ό 곡μ νλ μ¬λ¬ μ νμ μ€μ νκ³ ν΄λΉ νλ‘νΌν°κ° 리ν°λ΄ κ°μ΄ λλ κ²

μν μΈν°νμ΄μ€, kind = βμνβ
μ μΈν°νμ΄μ€, kind = βμβ
λΌμ§ μΈν°νμ΄μ€, kind = βλΌμ§β
νμ - μΈν°νμ΄μ€μ μ§ν©
kind κ°μΌλ‘ νμ μ νμΈν΄ λΆκΈ°
Exhaustiveness check & Never
μ΄λ‘ μ μΌλ‘ λλ¬ν μ μλ κ³³μ Neverλ₯Ό μ€μ ν΄ μλνμ§ μμ λ‘μ§ λ°μμ μλ¬λ₯Ό λ°μμν¨λ€.

μ μΈν°νμ΄μ€
μ νμ μ μ²λ¦¬νμ§ μμ default κΉμ§ λ΄λ €μ΄
neverλ‘ λμ΄μμ΄ μλ¬ λ°μ
Last updated
Was this helpful?