νμ μ€ν¬λ¦½νΈ μ»΄νμΌλ¬λ νμ νκΈ°, νμ μ’νκΈ°μ νμ μΆλ‘ λ±μ κΈ°λ²μ μ΄μ©ν΄ κ°μ νμ μ νλ¨νλ€. νμ§λ§ λλ‘λ μ»΄νμΌλ¬κ° κ°μ§ μ 보λ₯Ό 무μνκ³ νλ‘κ·Έλλ¨Έκ° μνλ μμμ νμ μ κ°μ ν λΉνκ³ μΆμ μ μλ€. μ΄λ΄ λ νμν κ²μ΄ λ°λ‘ νμ λ¨μΈ (type assertion)μ΄λ€.
μ¦ νμ μ€ν¬λ¦½νΈ λ³΄λ€ λ΄κ° λ νμ μ μ μκ³ μλ€! λΌκ³ νλ κ²
ν€μλλ as
μ΄λ€.
let a; // let a:any
a = 10;
b = 'abc'
let b = a // let b:any;
let b = a as string;
DOM API μ‘°μ
let div = document.querySelector('div')// let div: HTMLDivElement | null
div.innerText;
//~~~ null μλ innerText λΌλ ν¨μκ° μμ΄μ!
let div = document.querySelector('div') as HTMLDivElement // let div: HTMLDivElement
div.innerText;
β νμ λ¨μΈμ λ μ‘°μ μ΄λ νν νμν κ²½μ°λ₯Ό μ μΈνκ³ λ μ¬μ©μ μ΅λν μ κ² νλκ² μ’λ€.
νμ μΊμ€ν | νμ λ¨μΈ | |
---|---|---|
μ¬μ© μμ | (<Dog>character).bark(); |
(character as Dog).bark(); |
μ»΄νμΌ νμμ μν₯ | O | O |
λ°νμμ μν₯ | O | X |
β νμ λ¨μΈμ "νμ μΊμ€ν (type casting)"μ΄λΌ λΆλ₯΄μ§ μλ μ΄μ λ μΌλ°μ μΌλ‘ μΊμ€ν μ΄λ λ§μ μ€ν μκ°μ μ΄λ€ λμμ΄ μΌμ΄λ κ²μμ λ΄ν¬νκΈ° λλ¬Έμ λλ€. νμ§λ§ "νμ λ¨μΈ(type assertions)"μ μμνκ² μ»΄νμΌ μκ° κ΅¬μ±λ¬Όμ΄κ³ λΉμ μ μ½λκ° μ΄λ€ μμΌλ‘ λΆμλκΈΈ μνλμ§ μ»΄νμΌλ¬μκ² ννΈλ₯Ό μ 곡νλ μλ¨μ λλ€.
β νμ μΊμ€ν 보λ€λ νμ λ¨μΈμ μ¬μ©νλ νΈμ΄ λμ μ μμ΅λλ€.(JSX λ₯Ό μ¬μ©ν κ²½μ° νΉν)