κΈ°μ‘΄ JSμ μ νμ μΌλ‘ μ μ νμ μ μΈ(Optional Static Type Notation)μ ν μ μλ νκΈ°λ²μ΄ μΆκ°λμλ€.μ νμ μ μ νμ μ μΈ νκΈ°λ² (Optional Static Type Notation)\-> TSλ₯Ό μ΄μ©νλ©΄ λ³μμ μ μ μΌλ‘ 미리 νμ μ μΈ
TypeScriptμ ν¨μλ JavaScriptμ²λΌ ν¨μλ₯Ό μμ±ν μ μμ§λ§, 맀κ°λ³μμ νμ κ³Ό λ°ν νμ μ μ€μ ν΄μΌ νλ€.function λ³μλͺ (맀κ°λ³μ : 맀κ°λ³μ νμ ) : λ°νκ°μ νμ { }λ§μ½ λ°μ ν¨μκ° return μ ν΄μΌλ κ²½μ° returnν νμ μ΄ λͺ
TypeScriptμμλ κ°μ²΄λ₯Ό μ€λͺ νλ μ΄λ Έν μ΄μ μ λ§λ€ μ μμΌλ©° λ³μ λλ κ°μ²΄λ₯Ό μ μΈν λ, νμ μ μ μν΄μΌνλ€.μ μνλ λ°©λ²μ interfaceμ typeμ΄ μ‘΄μ¬μΌλ°μ μΌλ‘ νμ₯μ±μ΄ μ’μ interface μ¬μ©μ κΆμ₯νλ€.νμ μ΄ μ¬ννκ±°λ μ λ λ³κ²½λμ§ μλ κ²½
TSμμλ ν¨μ νλΌλ―Έν°, λ°ν κ°, λ³μλ₯Ό μ΄λ Έν μ΄μ μ²λ¦¬ν¨μΌλ‘ λ°°μ΄μ΄λΌκ³ μ μ μλ€.
μ λμ¨ νμ μ λ³μμ κ°μ΄ μ¬λ¬ νμ μ κ°μ§λ κ²½μ° μ£Όλ‘ μ¬μ©λλ€.μ λμ¨ νμ μ νμ©νμ¬ λ°°μ΄μλ μ¬μ©ν μ μλ€.리ν°λ΄ νμ μ΄μ κ³ μ λ κ°μ μ§μ ν μ μλ€.μ λμ¨ νμ μ 리ν°λ΄ νμ μ νμ©νλ©΄ λ³μλ ν¨μ νλΌλ―Έν°μ μ¬λ¬ 리ν°λ΄ νμ μ μ μΈν λ μ μ©νλ€.
λ°°μ΄ νμ μ΄μ§λ§ κΈΈμ΄μ νμ κ³Ό λ°°μ΄ μμκ° κ³ μ λλ€. Enumμ λͺ λͺ λ μμ μ§ν©μ μ μν μ μλ€.μ½λ μ 체μμ μ¬μ¬μ©ν μ μλ λͺ λͺ λ μμμ μ§ν©μ΄λ€.ν λ¬Άμμ μ΄λ¦μ enumμ μ§μ νλ©΄ κ³μν΄μ μ°Έμ‘°κ° κ°λ₯νκ³ νΈλ¦¬νκ² μλ μμ± κΈ°λ₯λ μ¬μ©κ°λ₯νλ€.
λλΆλΆμ μμ μ κ²½μ° μ΄ λμ μν μ λμΌνμ§λ§ ν΅μ¬μ μΈ μ°¨μ΄κ° μλ€.μΈν°νμ΄μ€λ μ€μ§ κ°μ²΄ ννλ§ λ¬μ¬ν μ μλ€. νμ λ³μΉμ λͺ¨λ νμ μ λ¬μ¬ ν μ μλ€.μ¦, λͺ¨λ μ’ λ₯μ νμ λ³μΉμ μΈν°νμ΄μ€λ‘ λ체ν μλ μμΌλ―λ‘κ°μ²΄μ ννλ₯Ό λ¬μ¬νλ κ²½μ°κ° μλλΌλ©΄ νμ
ν°λ―Έλμ μλμ λͺ λ Ήμ΄λ₯Ό μ λ ₯νλ©΄ ν΄λμ λͺλͺ μ€μ κ³Ό 100μ¬κ°μ μ£Όμμ΄ λ¬λ¦° tsconfig.json νμΌμ΄ μμ±λ κ²μ΄λ€.tsconfigλ νμ μ€ν¬λ¦½νΈλ₯Ό μλ°μ€ν¬λ¦½νΈλ‘ λ³νν λ μ€μ μ μ μν΄λμ νμΌμ΄λ€.μ λ€λ¦ tsc λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ©΄ λͺ¨λ .ts νμΌμ μ»΄νμΌλ§
1. μ νμ (Optional) 2. Non-Null λ¨μΈ 3. νμ λ¨μΈ
μλ° μ€ν¬λ¦½νΈλ μλ ν΄λμ€λ μμκ³ νλ‘ν νμ μμ€ν κ³Ό μμ±μ ν¨μλ§ μμλ€.μμ±μ μ μλ νμλ μλμ§λ§ λκ° ν΄λμ€λ₯Ό μ μν λ μ¬μ©νλ€.constructorλΌκ³ μ μν΄μΌ μλμΌλ‘ νΈμΆλλ€.ν΄λμ€ νλλ νλμ νλ‘νΌν°λ₯Ό λΉ λ₯΄κ² μ μνκ² ν΄μ£Όλ ꡬ문μΌλ‘μ ν΄λμ€
κΈ°λ³Έμ μΌλ‘ publicμ΄λ―λ‘ λ°λΌμ public μ κ·Ό μ μ΄μλ νμλ μλμ§λ§, λ€λ₯Έ κ°λ°μκ° ν΄λμ€ μΈλΆμμλ λ³κ²½, μ κ·Ό,μ°κΈ°λ₯Ό ν μ μλ€κ³ λͺ νν μ리기μν΄ publicμ μ¬μ©νλ©° μ΄λμμλ μΈ μ μλ€. privateμ ν΄λΉ νλ‘νΌν° λλ λ©μλκ° μ€μ§ ν΄λμ€
μ λ ₯ νμ μ λ°λΌ κ·Έ νμ μΌλ‘ λ°ννλ€λ κ΄κ³λ₯Ό μ€μ νλ€.μ λ€λ¦ ν¨μμ νμ μ μ μΈνμ§μμλ νλΌλ―Έν° νΉμ μΈμλ₯Ό ν΅ν΄ νμ μ μΆλ‘ ν μ μλ€.tsx : TypeScriptλ₯Ό μ¬μ©ν μ μλ JSX νμΌJSXμμ javascriptμ HTML ν νλ¦Ώμ μμ±νλ λ°©μμΌλ‘
νμ μ’νκΈ°λ μ£Όλ‘ λͺ ννμ§ μμ νμ μ΄ μμλ μ¬μ©νλ€. κ·Έλ° νμ μ μ λμ¨ νμ μ΄λΌκ³ νλ©° μ΄λ₯Ό λ³΄λ€ λͺ ννκ² μ’νλ κ²μ΄λ€.typeofλ string,number,booleanκ³Ό κ°μ μμ κ°μ μ²λ¦¬ν λ μ μ©νλ€.μ°ΈμΈμ§ κ±°μ§μΈμ§ κ²μ¬ν΄μ νμ μ’νκΈ°λ₯Ό ν μ μ
.d.ts νμΌμ ꡬν μΈλΆ μ¬νμ΄λΌλκ° μ€νλ JavaScript μ½λ λ° μΆλ ₯μ μ°Ύμλ³Ό μ μλ€.λμ νμ μ λ³΄λ§ μ°Ύμ μ μλ€. μ¦, νμ μ μ μΈνλκ²μ΄λ€. TypeScriptκ° νμΈνκ³ μ½λμ λν νμ κ·μΉμ μ΄ν΄νκ³ μ€ννλλ° μ¬μ©λλ€.λ°λΌμ .ts νμΌμλ
λ€μμ€νμ΄μ€λ νμΌ κ° μ½λλ₯Ό 곡μ νλ λ€μν λ°©λ²μ΄λ©°μ½λλ₯Ό 곡μ νκ³ TypeScriptμμ μ½λλ₯Ό ꡬμ±νλ μ€λλ λ°©μμ΄λ€.javascriptλ exportλ μ΅μμ awaitκ° μλ νμΌμ λͺ¨λμ΄ μλ μ€ν¬λ¦½νΈλ‘ κ°μ£Όνλ€.μ€ν¬λ¦½νΈ μμμ μμ ν λ λ³μμ νμ μ 곡
Webpackμ μμ‘΄μ±μ κ°μ§ μμ,μλ°± κ°μ νμΌλ‘ ꡬμ±λ 볡μ‘ν μ ν리μΌμ΄μ μ²λ¦¬λ₯Ό λλλ€.Webpackμ κ°κΈ° λ€λ₯Έ μμ μ λͺ¨μ μ μ μμ μΌλ‘ λ²λ€λ§νλ€. μλ§μ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¬ν¨νλ λ°±μ¬ κ°μ JavaScript νμΌμ΄ νλλ‘ ν©μ³μ Έμ ν μ€ν¬λ¦½νΈλ‘ λΆλ¬μ¬ μ