TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day4

2024. 8. 9. 00:38Β·lecture recap

πŸ“ 진도

 

2. νƒ€μž…μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ (8/8)

  • Any와 Unknown
  • Void와 Never

3. νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ΄ν•΄ν•˜κΈ° (3/9)

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ΄ν•΄ν•˜κΈ°
  • νƒ€μž…μ€ 집합이닀
  • νƒ€μž… 계측도와 ν•¨κ»˜ κΈ°λ³Ένƒ€μž… μ‚΄νŽ΄λ³΄κΈ°


πŸͺƒ μš”μ•½ & 과제

 

=> 였늘 배운 λ‚΄μš©μ„ ν† λŒ€λ‘œ μ•„λž˜μ˜ 4κ°€μ§€ νƒ€μž…μ— λŒ€ν•΄ κ°€λ³κ²Œ μ •λ¦¬ν•˜κΈ°

Unknown

λͺ¨λ“  값을 받을 수 μžˆλŠ” νƒ€μž…μ΄μ§€λ§Œ, unknown νƒ€μž…μ„ μ‚¬μš©ν•  λ•ŒλŠ” λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜κΈ° 전에 λͺ…μ‹œμ μΈ νƒ€μž… μ²΄ν¬λ‚˜ νƒ€μž… 단언을 톡해 ν•΄λ‹Ή κ°’μ˜ νƒ€μž…μ„ ν™•μΈν•΄μ•Όλ§Œ μ‹€μ œλ‘œ ν•΄λ‹Ή 값에 μ ‘κ·Όν•˜κ±°λ‚˜ μ‚¬μš©ν•  수 μžˆλ‹€.

any와 λ§ˆμ°¬κ°€μ§€λ‘œ μ–΄λ– ν•œ νƒ€μž…μ˜ 값도 μ €μž₯ν•  수 μžˆλ‹€.
ν•˜μ§€λ§Œ λ‹€λ₯Έμ μ€ unknownνƒ€μž…μ˜ 값을 λ‹€λ₯Έ νƒ€μž…μ— λŒ€μž…ν•  수 μ—†κ³  λ©”μ„œλ“œλ“€λ„ μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€.

// κ°’μ˜ νƒ€μž…μ„ ν™•μΈν•΄μ•Όλ§Œ μ‹€μ œλ‘œ ν•΄λ‹Ή 값에 μ ‘κ·Όν•  수 μžˆμŒμ„ λ³΄μ—¬μ£ΌλŠ” μ˜ˆμ‹œ

let exam1: unknown = 123;
// (μ•„λž˜μ˜ 주석 ν•΄μ œ μ‹œ μ—λŸ¬ λ°œμƒ)
// let num: number = exam1; 
// "Error: 'unknown' νƒ€μž… λ³€μˆ˜λ₯Ό 'number' νƒ€μž…μ— ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€."

if (typeof exam1 === 'number') {
  let num: number = exam1; // 이제 'number' νƒ€μž…μœΌλ‘œ 할당이 κ°€λŠ₯ν•˜λ‹€.
  console.log(num);
}

 

typeof μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜μ˜ νƒ€μž…μ„ μ²΄ν¬ν•˜λŠ”λ° λ³€μˆ˜κ°€ μ„ μ–Έν•œ ν•΄λ‹Ή νƒ€μž…μΌ κ²½μš°μ—λ§Œ 블둝을 μ‹€ν–‰ν•œλ‹€

λ‹€λ§Œ, νƒ€μž… 단언은 μ‹€μ œλ‘œ νƒ€μž…μ΄ λ‹€λ₯Ό 경우 λŸ°νƒ€μž„ μ—λŸ¬κ°€ λ°œμƒν•  수 있기 λ•Œλ¬Έμ— νƒ€μž… 체크λ₯Ό μ„ ν˜Έν•˜λŠ” 것이 μ½”λ“œμ˜ μ•ˆμ „μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ„±μ„ 높일 수 μžˆλ‹€!

 

  function TypeChecking(text: unknown): void {
  // νƒ€μž… 체크λ₯Ό 톡해 μ•ˆμ „ν•˜κ²Œ μ‚¬μš©
  if (typeof text === 'string') {
    console.log('Text is a string:', text.toUpperCase());
  } else if (typeof text === 'number') {
    console.log('Text is a number:', text * 2);
  } else {
    console.log('Text is of unknown type');
  }
}

TypeChecking('hello');   // Text is a string: HELLO
TypeChecking(42);        // Text is a number: 84
TypeChecking(true);       // Text is of unknown type

 

= Unknown νƒ€μž…μ€ μ»΄νŒŒμΌλŸ¬μ—κ²Œ ν•΄λ‹Ή κ°’μ˜ νƒ€μž… 정보λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ” μƒνƒœμ—μ„œλŠ” νƒ€μž… μ•ˆμ •μ„±μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ μ–΄λ– ν•œ 연산도 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 이 λ•Œλ¬Έμ— any보닀 더 μ•ˆμ „ν•˜λ‹€ !!

 

 

Never

ν•¨μˆ˜κ°€ 항상 μ˜ˆμ™Έλ₯Ό λ˜μ§€κ±°λ‚˜ λ¬΄ν•œ 루프에 λΉ μ Έ μ ˆλŒ€ λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ” 경우의 νƒ€μž…
주둜 μ˜ˆμ™Έ 상황을 λ‹€λ£¨κ±°λ‚˜ λ¬΄ν•œ 루프일 λ•Œ μ‚¬μš©ν•œλ‹€. λ‹€λ₯Έ λͺ¨λ“  νƒ€μž…μ˜ ν•˜μœ„ νƒ€μž…μ΄κ³ , μ–΄λ–€ 값도 ν• λ‹Ήν•  수 μ—†λ‹€!!

function throwError(message: string): never {
throw new Error(message);
}

function infiniteLoop(): never {
while (true) {
  // λ¬΄ν•œ 루프 ~.~
}
}

 

Void

μ–΄λ–€ 값도 λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ” ν•¨μˆ˜μ˜ λ°˜ν™˜ νƒ€μž…
주둜 ν•¨μˆ˜κ°€ μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ§Œ κ°–κ³ , λ°˜ν™˜ 값이 ν•„μš”ν•˜μ§€ μ•Šμ„ λ•Œ μ‚¬μš©ν•œλ‹€

function ConsoleMessage(message: string): void {
console.log(message);
}

function NoReturn(): void {
console.log("This function doesn't return any value.");
}

 

Any

TypeScript의 νƒ€μž… 검사λ₯Ό μš°νšŒν•˜κ³  λͺ¨λ“  μ’…λ₯˜μ˜ 값을 ν—ˆμš©ν•˜λŠ” 동적 νƒ€μž… (μΉ˜νŠΈν‚€ !)
ν•˜μ§€λ§Œ νƒ€μž… 검사λ₯Ό λ°›μ§€ μ•ŠλŠ” 것이기 λ•Œλ¬Έμ— νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 이점을 ν™œμš©ν•˜μ§€ λͺ»ν•œλ‹€.
= νƒ€μž… μ•ˆμ •μ„±μ΄ λ–¨μ–΄μ§„λ‹€. μ΅œλŒ€ν•œ μ§€μ–‘ν•΄μ•Όν•œλ‹€ !

let value: any = 123;
value = 'hello';
value = true;

 

'lecture recap' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day6  (0) 2024.08.09
TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day5  (1) 2024.08.09
TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day3  (0) 2024.07.26
TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day2  (11) 2024.07.23
TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day1  (3) 2024.07.23
'lecture recap' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day6
  • TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day5
  • TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day3
  • TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day2
nuew
nuew
🀸 재주 λ„˜λŠ” 쀑
  • nuew
    bloggg. . .πŸ¦–πŸ’₯
    nuew
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (88)
      • issue (10)
      • baekjoon (41)
      • lecture recap (11)
      • What I Learn (26)
      • retrospective (0)
      • maeil-mail (0)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    css
    ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ
    Node.js
    μ•Œκ³ λ¦¬μ¦˜
    media-query
    zustand
    modal
    issue
    μžλ°”μŠ€ν¬λ¦½νŠΈ
    js
    μ½”λ”©ν…ŒμŠ€νŠΈ
    λ°±μ€€
    Baekjoon
    TypeScript
    Algorithm
    JavaScript
    what i learn
    TailwindCSS
    ν•œμž…ν¬κΈ°λ‘œμž˜λΌλ¨ΉλŠ”νƒ€μž…μŠ€ν¬λ¦½νŠΈ
    Study
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
nuew
TS: ν•œμž…ν¬κΈ°λ‘œ μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ±Œλ¦°μ§€_day4
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”