π£ λ€μ΄κ°κΈ° μ μ
μ΄λ²μλ void typeμ λν΄μ μ 리ν΄λ³΄μ₯!_! void νμ
μ ν¨μμ νμ
μ μ§μ ν λ μ¬μ©νλ€κ³ μκ°νλ©΄ λλ€. 'void'μ κ²½μ° κ°μ΄ μμμ λνλ΄λλ°, μ무κ²λ λ°ννμ§ μλ(=return κ°μ΄ μλ) ν¨μμ λ°ν μ νμΌλ‘ μ¬μ©λλΉ!_! λ°μμ κ°λ
μ μμΈν μ΄ν΄λ³΄μ! κΌ¬μ°κΌ¬μ°!
(μ¬μ§μ void staff.... 곡νμ μ§ν‘μ΄....κ»κ»)
곡νμ μ§ν‘μ΄
μ΄μ μ union, any, unknwon νμ
μ΄ κΆκΈνλ€λ©΄?
[TypeScript] union type · any · unknown
π£ union type · any · unknown 곡ν΅μ μ΄λκΉ?λ€μ΄κ°κΈ° μ μ μ΄ μΈκ°μ§μ 곡ν΅μ μ μκ°ν΄λ³΄λ©΄! μ΄λ€ νμ
μ μ’
λ₯κ° λ€μ΄μ¬μ§ νμ€νκ² λͺ¨λ₯Ό λ μ¬μ©νλ€λ μ μ λ€ μ μλ€. νλ‘μ νΈ λ΄μμ μ¬μ©ν
haileyham.tistory.com
π£ Void Type · ν¨μμ νμ
1. κ°λ
TypeScriptμ void μ νμ κ°μ΄ μμμ λνλ. μΌλ°μ μΌλ‘ μ무κ²λ λ°ννμ§ μλ ν¨μμ λ°ν μ νμΌλ‘ μ¬μ©. μλ₯Ό λ€μ΄ λ¨μν μ½μμ κΈ°λ‘νλ ν¨μλ 'void' λ°ν μ νμ. 'void'λ₯Ό μ¬μ©νλ©΄ ν΄λΉ ν¨μμμ μ΄λ€ κ°λ κΈ°λν μ μμμ λνλΌ μ μμ. μ£Όλ‘ λͺ
νμ±μ μν΄ μ¬μ©λλ©° κ²°κ³Όλ₯Ό μμ±ν기보λ€λ μμ
μ μννλ ν¨μμμ μλνμ§ μμ returnμ μ‘λλ° μ¬μ©.
μλμ κ²½μ° logMessageλ μμ
μ μννμ§λ§ void μ νμΌλ‘ νμλ κ°μ λ°ννμ§ μμ.
function logMessage(message: string): void {
console.log(message);
}
2. μ΄λ»κ² μ¬μ©?
ν¨μμ κ²½μ° νλΌλ―Έν° νμ
μ§μ μ νλΌλ―Έν° μμ,
ν¨μ μ€ν ν κ°μ ν¨μλͺ
μ°μΈ‘μ μλμ½λμ²λΌ μ°λ©΄ λ¨!
μλμ κ²½μ° return κ°μ΄ μμ΄μ number νμ
μ μ μ΄μ€. void νμ
μ΄μμ κ²½μ° '3λ² μ½λλ‘ λ€μ μ΄ν΄λ³΄κΈ°' μ°Έκ³ νκΈ°!
μ!_! κ·Έλ¦¬κ³ νλΌλ―Έν°μ νμ
μ§μ ν κ²½μ° νμκ° λλ μ°Έκ³ νκΈ°!
function ν¨μλΏ(x :number) :number {
return x * 6
}
3. μ½λλ‘ λ€μ μ΄ν΄λ³΄κΈ°
보ν΅μ κ²½μ° μ΄λ°μμΌλ‘ return κ°μ λ§μΆ° νμ
μ§μ μ ν΄μ£Όλλ°,
function ν¨μλΏ(x :number) :number {
return x * 6
}
λ°μ μ½λλ₯Ό μ΄ν΄λ³΄λ©΄ ν¨μ νμ
μ void λ‘ μ§μ ν κ²½μ° return κ°μ΄ λ€μ΄μ€λ©΄ μλ¬λλ κ²μ νμΈ ν μ μμ
function ν¨μλΏ(x :number) :void {
return x * 6 // μ¬κΈ°μ μλ¬λ¨
}
4. κ·Όλ° νλΌλ―Έν° μ΅μ
μΌλ‘ νκ³ μΆμΌλ©΄..?
νλΌλ―Έν°μ νμ
μ μ§μ ν κ²½μ° νλΌλ―Έν°κ° νμκ° λλ€κ³ νμ. κ·Έλ λ€λ©΄ νλΌλ―Έν°λ₯Ό μμ λλ μμΌλ κ·Έμ λν λλΉλ‘ μκ°νλ€λ©΄ κ·Έλ₯ ? λ¬Όμνλ§ μ μΌλ©΄ λ¨
λ¬Όμνμ κ²½μ° x : number | undefined λΌλ μλ―Έμ!
μ¦, μλ ν¨μλΏ(); κ²½μ° undefinedκ° λλ€λ κ²
function ν¨μλΏ(x? :number) :number {
return x * 6
}
ν¨μλΏ();
ν¨μλΏ(6);
void λ μ 리 λ! λ€μ μκ°μλ ?
[TypeScript] Narrowing κ³Ό Assertion
π£ λ€μ΄κ°κΈ° μ μ!μ΄λ²μλ Narrowing & Assertionμ λν΄μ μ΄ν΄λ³Ό κ²μ΄λ€. νΉμ μ§μ§λ κ²μλ¬Όμμ λ€λ€λ union typeμμ μ€λ₯κ° λ¬λ λΆλΆλ€μ κΈ°μ΅ νλμ§?!?! λλ΅ μλμ κ°μ μ½λμλλ°, μ¬κΈ°μ
haileyham.tistory.com