TypeScript κΈ°λ³Έ κ°λ λ€μ λνμ¬
2024 / 01 / 03 (μ)
μμ¦ νλ‘ νΈμλ νΈλ λλ νμ
μ€ν¬λ¦½νΈλ μ νμ΄ μλ νμκ³Όμ μΈκ² κ°λ€.
μ΄λκ°λ νμ
μ€ν¬λ¦½νΈκΈ°λ°μΌλ‘ νλ‘μ νΈλ₯Ό μ½λ©νμλκ° , λ€λ₯Έ κ°λ°μκ° μ½λ©ν μ½λλ€μ μ΄ν΄λ³΄κΈ°μ μ "μ λ° νμ
μ€ν¬λ¦½νΈ μ μΈ λμ΄μκΈ°λ₯Ό ..! " κΈ°λκΉμ§ νλ κ°λ°μλ μλ€κ³ νλ€.
νμ
μ€ν¬λ¦½νΈλ μ¬μ€ μλ°μ€ν¬λ¦½νΈμ ν¬κ² μ°¨μ΄μ μ΄ μλ€κ³ νλ€.
μ¦ , νμ
μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈμ νμ₯ν(superSet) μ΄λΌκ³ λ λΆλ¦°λ€.
νμ
μ€ν¬λ¦½νΈ ννμ΄μ§μλ νμ
μ€ν¬λ¦½νΈλ₯Ό λͺ
νν μ€λͺ
νλ ν λ¬Έμ₯μ΄ μλλ° λ°λ‘ "TypeScript is JavaScript with syntax for types"λ€.
κΈ°μ‘΄ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ νμ
μ κ°λ―Έν κ²μ΄ λ°λ‘ νμ
μ€ν¬λ¦½νΈλΌκ³ λ³Ό μ μλ€. μλ°μ€ν¬λ¦½νΈλ λμ νμ
(Daynamic Type)μΈμ΄μ΄κΈ° λλ¬Έμ λλΆλΆμ μλ¬λ₯Ό μ½λλ₯Ό μ€ννμ λλ§
νμΈν μ μλ€λ λ¬Έμ μ μ΄ μλ€.
λμ νμ
μΈμ΄λΌλ μ μ κ°λ°μμκ² μμ λ₯Ό μ μ¬νκΈ°λ νμ§λ§ μ½λμ κ·λͺ¨κ° 컀μ§μλ‘ μ€νλ € μ μ§λ³΄μ λ° λ³΄μνκΈ° μ΄λ ΅λ€λ κ²½μ°κ° λ§λ€κ³ νλ€.
<script>
function calculator(a,b){
return a * b
}
calculator(5,5)//25
calculator('μ€','μ‘') // NaN
</script>
calculator ν¨μλ λ μΈμλ₯Ό λ°μ κ³±μ ν κ²°κ³Όλ₯Ό λ°ννλλ°, μ΄λ μ΄λκΉμ§λ a,bκ° μ«μμΌ λλ§ κ°λ₯νκ³ , κ·Έ μΈμ κ²½μ°μλ ν¨μλ₯Ό μ¬μ©νλ κ°λ°μκ° μνμ§ μμ κ²°κ³Ό(λλ ν¨μλ₯Ό μ 곡νλ μΈ‘μμ μμΉ μλ κ²°κ³Ό)λ₯Ό λ§λ€μ΄ λΌ κ²μ΄λ€. λ¬Όλ‘ μλ°μ€ν¬λ¦½νΈμμ νμ μ 체ν¬ν΄μ μ΄λ¬ν λ¬Έμ λ₯Ό λ°©μ§ν μ μλ€.
<script>
function calculator(a,b){
if(typeof a !== 'number' || typeof b !== 'number'){
throw new Error('aμ b λͺ¨λ μ«μμ¬μΌ ν©λλ€.')
}
return a * b
}
calculator(5,5)//25
calculator('μ€','μ‘') //Uncaught Error: aμ b λͺ¨λ μ«μμ¬μΌ ν©λλ€.
</script>
κ·Έλ¬λ λͺ¨λ ν¨μμ λ³μμ μ΄λ¬ν νμ
νμΈ μ°μ°μμΈ typeofλ₯Ό μ μ©ν΄μ 체ν¬νλ κ²μ λ무 λ²κ±°λ‘κ³ μ½λμ ν¬κΈ°λ₯Ό κ³Όλνκ² ν€μ°κ² λλ€. λͺ¨λ μΈμμ λν΄,κ·Έλ¦¬κ³ μΈμκ° κ°μ²΄λΌλ©΄ λ΄λΆ νλ‘νΌν°μ λν΄ λͺ¨λ 체ν¬νλ€λ©΄
μλ°μ€ν¬λ¦½νΈ λ΄μμλ μ¬μ©ν μ μλ κ°μ₯ μλ²½ν λ°©λ²μ΄μ§λ§ κ°λ°μμκ² λ무λλ λ²κ±°λ‘μ΄ μμ
μ΄λ€.
νμ μ€ν¬λ¦½νΈλ μ΄λ¬ν μλ°μ€ν¬λ¦½νΈμ νκ³λ₯Ό λ²μ΄λ νμ 체ν¬λ₯Ό μ μ μΌλ‘ λ°νμμ΄ μλ λΉλ(νΈλμ€νμΌ)νμμ μνν μ μκ² ν΄μ€λ€.
<script>
function calculator(a: number, b: number){
return a * b
}
// tscλ‘ μ΄ μ½λλ₯Ό μλ°μ€ν¬λ¦½νΈλ‘ νΈλμ€νμΌνλ©΄
/* Argument of type 'string' is
not assignable to parameter of type 'number.' μλ¬κ° λ°μνλ€.*/
// μ΄ μ½λλ νμ
λ¬Έμ κ° ν΄κ²°λκΈ° μ κΉμ§ μ¬μ© λΆκ°λ₯νλ€.
calculator('μ€','μ‘')
</script>
νμ
μ€ν¬λ¦½νΈλ λ³μμ νμ
μΌλ₯΄ μ€μ ν μ μμΌλ―λ‘ μμ μ aμ bλ³μμ number νμ
μ μ§μ νλ©΄ μ½λλ₯Ό μμ±ν λ μ€μ§ μ«μλ§ ν λΉν μ μκ² λλ€.
μ΄λ¬ν νΉμ§ λλΆμ λ°νμκΉμ§ κ°μ§ μμλ μ½λλ₯Ό λΉλνλ μμ μ μ΄λ―Έ μλ¬κ° λ°μν κ°λ₯μ±μ΄ μλ μ½λλ₯Ό νμΈν΄μ€λ€.
β‘οΈ λ€μκΈμμλ νμ μ€ν¬λ¦½νΈλ₯Ό 리μ‘νΈ μ½λμμ νμ©νλ λ°©λ²μ λν΄ μ΄ν΄λ³΄μ.