μƒˆμ†Œμ‹

FrontEnd/TypeScript

[TypeScript] void type · ν•¨μˆ˜μ˜ νƒ€μž…

  • -

🐣 λ“€μ–΄κ°€κΈ° 전에


μ΄λ²ˆμ—λŠ” 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

 

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.