μ°Έκ³ μ¬μ΄νΈ
π» TypeScriptλ,
νμ μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈμ μνΌμ μΈ μ€ν μμ€ νλ‘κ·Έλλ° μΈμ΄μ΄λ€.
λ§μ΄ν¬λ‘μννΈμμ κ°λ°, μ μ§νκ³ μμΌλ©° μ격ν λ¬Έλ²μ μ§μνλ€.
ν΄λΌμ΄μΈνΈ μ¬μ΄λμ μλ²μ¬μ΄λλ₯Ό μν κ°λ°μ μ¬μ© κ°λ₯νλ€.
νμ μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈ μμ§μ μ¬μ©νλ©΄μ 컀λ€λ μ΄ν리μΌμ΄μ μ κ°λ°ν μ μκ² μ€κ³λ μΈμ΄μ΄λ€.
μλ°μ€ν¬λ¦½νΈμ μνΌμ μ΄κΈ° λλ¬Έμ μλ°μ€ν¬λ¦½νΈλ‘ μμ±λ νλ‘κ·Έλ¨μ΄ νμ μ€ν¬λ¦½νΈ νλ‘κ·Έλ¨μΌλ‘λ λμνλ€.
νμ μ€ν¬λ¦½νΈλ μμ μ΄ μνλ νμ μ μ μνκ³ νλ‘κ·Έλλ°μ νλ©΄ μλ°μ€ν¬λ¦½νΈλ‘ μ»΄νμΌλμ΄ μ€νν μ μλ€.
νμ μ€ν¬λ¦½νΈλ λͺ¨λ μ΄μ체μ , λΈλΌμ°μ , νΈμ€νΈμμ μ¬μ© κ°λ₯ν μ€ν μμ€μ΄λ€.
π§π»βοΈ TypeScript
νμ μ€ν¬λ¦½νΈλ μ μ νμ μΈμ΄μ΄λ€.
μ¦, λ³μ μ μΈ μ λ³μμ μ μ₯ν κ°μ μ’ λ₯λ₯Ό μ¬μ μ μ§μ ν΄μΌνλ€.
μ»΄νμΌ μ, νμ κ³Ό μΌμΉνμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
let num: number = 3;
num = 'λ¬Έμ';
// μλ¬ λ°μ: Type 'string' is not assignable to type 'number'.
ππ» μ₯μ
- νμ μλ¬λ‘ μΈν λ¬Έμ μ μ μ΄κΈ°μ λ°μν μ μμ΄ μμ μ±μ΄ λλ€.
- μ»΄νμΌ μ νμ μ κ²°μ νκΈ° λλ¬Έμ μ€νμλκ° λΉ λ₯΄λ€.
- μλ¬ λ°μ μ, λͺ ννκ² μλ €μ€λ€.
π£ λ¨μ
- μ»΄νμΌ μμ νμ μ κ²°μ νκΈ° λλ¬Έμ νμ μ μΈ λ° μμ ν λ λ²κ±°λ‘λ€.
π§π» JavaScript
μλ°μ€ν¬λ¦½νΈλ λμ νμ μΈμ΄μ΄λ€.
μ¦, μ»΄νμΌ μκ° μλλΌ λ°νμ μ λ³μμ νμ μ΄ κ²°μ λλ€.
κ³ μ λ νμ μ΄ μμ΄μ κ°μ λ³μμ μ¬λ¬ νμ μ κ°μ μμ λ‘κ² ν λΉν μ μλ€.
let str = 'κΈμ';
str = 3;
console.log(str);
// 3
console.log(str + '5');
// μ«μ + λ¬Έμ (Dynamic Typing: νλ³ν κ°λ₯ μ μλ λ³κ²½)
// 35
λ³μλ₯Ό μ μΈνμ¬ μ²μμ 3μ΄λΌλ <Integer>κ°μ ν λΉνμλλ° κ·Έ λ€μ 'λλ κΈμ'; λΌλ <String> κ°μ ν λΉνκ³ μ½μλ‘ μ°μλλ κ°μ λ³μμ μ¬λ¬ νμ μ΄ λ€μ΄κ° μ μμλ€.
ππ» μ₯μ
- λ°νμ μ νμ μ΄ κ²°μ λκΈ° λλ¬Έμ μ μ°μ±μ΄ λλ€.
- μ»΄νμΌ μ νμ μ λͺ μν΄μ£Όμ§ μμλ λμ΄ μ½λκ° κ°κ²°νκ³ κ°λ°μλκ° ν₯μλλ€.
π£ λ¨μ
- λ°νμ μ νμ μλ λ³ν(Dynamic Typing)μ ν΅ν΄ μλ¬λ₯Ό λ°μ μν¬ μ μλ€.
- λ°νμ μ νμΈν μ λ°μ μκΈ° λλ¬Έμ, μ½λκ° κΈΈκ³ λ³΅μ‘ν κ²½μ° μλ¬λ₯Ό μ°ΎκΈ° νλ€λ€.
- μλ¬ λ΄μ©μ΄ λͺ ννμ§ μμ κ²½μ° μλ¬λ₯Ό μ°ΎκΈ° νλ€λ€.