ν΄λΉ λ³μμ μλ‘μ΄ κ°μ΄ ν λΉλλ©΄, μλ‘κ² ν λΉλ κ°μ νμ μ΄ λ³μμ νμ κ³Ό λμΌνμ§, μ¦ μλ‘μ΄ κ°μ΄ κΈ°μ‘΄ λ³μμ ν λΉλ μ μλμ§
Type... is not assignable to type...
νΉμ λ³μμ νΉμ κ°μ ν λΉνλ €κ³ ν λ, κ° νμ μ΄ μλ‘ μΌμΉνμ§ μμ λ λ°μ
μ΄κΈ°κ°μ΄ ν λΉλμ§ μμ μ΄κΈ° νμ μ μ μΆν μ μλ λ³μλ μ§ννλ anyλΌκ³ λΆλ₯Έλ€.
νΉμ νμ μ κ°μ νλ λμ μλ‘μ΄ κ°μ΄ ν λΉλ λλ§λ€ λ³μ νμ μ λν μ΄ν΄λ₯Ό λ°μ μν¨λ€.
let rocker; // μ§ννλ any
rocker = "MinwooP";
rocker.toUpperCase();
rocker = 20;
rocker.toPrecision(1);
rocker.toUpperCase(); // error !
νμ§λ§ μ΄λ κ² any νμ μΌλ‘ μ§ννλ κ²μ νμ©νλ©΄ tsμ νμ κ²μ¬ λͺ©μ μ μΈλͺ¨μκ² λ§λ λ€.
=> μ΄κΈ°κ°μ ν λΉνμ§ μκ³ λ λ³μμ νμ μ μ μΈν μ μμ
let rocker: string; // νμ
μ λν
μ΄μ
rocker = "MinwooP"
=> μ΄λ¬ν νμ μ λν μ΄μ μ tsμλ§ μ‘΄μ¬νλ©° λ°νμ μ½λμ μν₯μ μ£Όμ§ μκ³ μ ν¨ν js ꡬ문λ μλλ€.
tsc λͺ
λ Ήμ΄λ₯Ό μ€νν΄ ts => js
λ‘ μ»΄νμΌνλ©΄ ν΄λΉ μ½λκ° μμ λλ€.
String κ°μ²΄λ μμ νμ μΈ λ¬Έμμ΄μ λ€λ£° λ μ μ©ν νλ‘νΌν°μ λ©μλλ₯Ό μ 곡νλ λ νΌ(wrapper) κ°μ²΄μ΄λ€. λ³μ λλ κ°μ²΄ νλ‘νΌν°κ° λ¬Έμμ΄μ κ°μΌλ‘ κ°μ§κ³ μλ€λ©΄ String κ°μ²΄μ λ³λ μμ±μμ΄ String κ°μ²΄μ νλ‘νΌν°μ λ©μλλ₯Ό μ¬μ©ν μ μλ€.
μμ νμ μ΄ wrapper κ°μ²΄μ λ©μλλ₯Ό μ¬μ©ν μ μλ μ΄μ λ μμ νμ μΌλ‘ νλ‘νΌν°λ λ©μλλ₯Ό νΈμΆν λ μμ νμ κ³Ό μ°κ΄λ wrapper κ°μ²΄λ‘ μΌμμ μΌλ‘ λ³νλμ΄ νλ‘ν νμ κ°μ²΄λ₯Ό 곡μ νκ² λκΈ° λλ¬Έμ΄λ€.
const str = 'Hello world!';
console.log(str.toUpperCase()); // 'HELLO WORLD!'
μμμ μμ νμ λ¬Έμμ΄μ λ΄κ³ μλ λ³μ strμ΄ String.prototype.toUpperCase() λ©μλλ₯Ό νΈμΆν μ μλ κ²μ λ³μ strμ κ°μ΄ μΌμμ μΌλ‘ wrapperκ°μ²΄λ‘ λ³νλμκΈ° λλ¬Έμ΄λ€.