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

2024. 7. 23. 02:49Β·lecture recap

진도

 

1. νƒ€μž…μŠ€ν¬λ¦½νŠΈ 개둠 (5/5)

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ 컴파일러 μ˜΅μ…˜ μ„€μ •

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

  • κΈ°λ³Έ νƒ€μž…μ΄λž€
  • μ›μ‹œ νƒ€μž…κ³Ό λ¦¬ν„°λŸ΄ νƒ€μž…

μš”μ•½

number νƒ€μž…μœΌλ‘œ μ •μ˜ν•œ λ³€μˆ˜μ—λŠ” number νƒ€μž…μ„ μ œμ™Έν•œ 값을 ν• λ‹Ήν•  수 μ—†μœΌλ©°, number νƒ€μž…μ˜ 값이 μ‚¬μš©ν•  수 μ—†λŠ” toUpperCase λ“±μ˜ λ©”μ„œλ“œλŠ” μ‚¬μš©ν•  수 μ—†λ‹€.

// number
let num1:number = 123;
let num2:number = -123;
let num3: number = 0.123;
let num4: number = -0.123;
let num5: number = Infinity;
let num6: number = -Infinity;
let num7: number = NaN;

 

λ³€μˆ˜μ˜ 이름 뒀에 콜둠(:)κ³Ό ν•¨κ»˜ λ³€μˆ˜μ˜ νƒ€μž…μ„ μ •μ˜ν•˜λŠ” 이런 문법을 ‘νƒ€μž… 주석’ λ˜λŠ” ‘νƒ€μž… μ–΄λ…Έν…Œμ΄μ…˜’이라고 λΆ€λ₯Έλ‹€.

string νƒ€μž…μ€ λ‹¨μˆœν•œ μŒλ”°μ˜΄ν‘œ λ¬Έμžμ—΄ 뿐만 μ•„λ‹ˆλΌ μž‘μ€ λ”°μ˜΄ν‘œ, λ°±ν‹±, ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄λ‘œ λ§Œλ“  λͺ¨λ“  λ¬Έμžμ—΄μ„ ν¬ν•¨ν•œλ‹€.

 

// string
let str1:string = "hello";
let str2: string = `hello`;
let str3: string = 'hello';
let str4: string = `hello ${num1}`

 

boolean νƒ€μž…μ€ true ν˜Ήμ€ falseλ₯Ό κ°€μ§€λŠ” νƒ€μž…μ΄λ‹€.

 

// null
let bool:boolean = true;

 

null νƒ€μž…μ€ null만 ν¬ν•¨ν•˜λŠ” νƒ€μž…μ΄λ‹€.

 

// null
let null1:null = null;

 

undefined νƒ€μž…λ„ undefined만 ν¬ν•¨ν•˜λŠ” νƒ€μž…μ΄λ‹€.

 

// undefined
let unde1: undefined = undefined;

 

λ¦¬ν„°λŸ΄νƒ€μž…μ€ 단 ν•˜λ‚˜μ˜ κ°’λ§Œ ν¬ν•¨ν•˜λŠ” νƒ€μž…μ΄λ‹€. κ·Έ κ°’ μ΄μ™Έμ˜ 값은 할당이 λΆˆκ°€ν•˜λ‹€.

 

// λ¦¬ν„°λŸ΄ = κ°’
let numA:10 = 10; 
let strA: "hello" = "hello";
let boolA:true = true;

 

과제

 

Q. μ •적 νƒ€μž…μ‹œμŠ€ν…œκ³Ό 동적 νƒ€μž… μ‹œμŠ€ν…œμ˜ 단점듀은 λ³΄μ™„ν•˜κ³  μž₯점듀은 κ·ΈλŒ€λ‘œ κ°€μ Έμ˜¨ TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ€? 

➑️ μ μ§„적 νƒ€μž… μ‹œμŠ€ν…œ (Gradual type System)

 

Q. TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ΄ κ°–λŠ” νŠΉμ§•μ—λŠ” μ–΄λ–€ 점이 μžˆμ„κΉŒμš”? (λ°”λ‘œ λ”± λ– μ˜€λ₯΄λŠ” ν•œκ°€μ§€ νŠΉμ§•)

➑️ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 경우 인터프리터 μ–Έμ–΄λ‘œ λŸ°νƒ€μž„ λ‹¨κ³„μ—μ„œ 였λ₯˜κ°€ 발견이 λ˜λŠ”λ°μ— λ°˜ν•΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈ(컴파일 μ–Έμ–΄)λŠ” 컴파일 λ‹¨κ³„μ—μ„œ νƒ€μž…μ„ κ²€μ‚¬ν•˜κΈ° λ•Œλ¬Έμ— 사전에 였λ₯˜ 발견이 κ°€λŠ₯ν•˜λ‹€

 

Q. TypeScriptλ₯Ό 컴파일 ν•˜λ©΄ κ·Έ 결과둜 무엇이 μƒμ„±λ˜λ‚˜μš”?

(힌트! TypeScriptλŠ” λ‹€λ₯Έ μ–Έμ–΄λ“€κ³ΌλŠ” 달리 컴파일 κ²°κ³Ό ByteCodeκ°€ μƒμ„±λ˜μ§€ μ•Šμ•„μš”)

➑️ typescript => ast => type checking => javascript

 

Q. νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•  λ•Œ tsconfig.json νŒŒμΌμ„ μ‚¬μš©ν•΄μ„œ νƒ€μž… 검사λ₯Ό 맀우 μ—„κ²©ν•˜κ²Œ ν•˜λ €λ©΄ μ–΄λ–€ μ˜΅μ…˜μ„ μ–΄λ–€ κ°’μœΌλ‘œ μ„€μ •ν•΄μ•Ό ν• κΉŒ?

➑️ 

{
"compilerOptions": { "strict" : true }
}

 

Q. μ•„λž˜ μ½”λ“œμ²˜λŸΌ number νƒ€μž…μ˜ λ³€μˆ˜μ— null 값을 ν• λ‹Ήν•˜λ €κ³  ν•œλ‹€.

let numA: number = null; // ❌ 였λ₯˜ λ°œμƒ!

 

이 μ½”λ“œλŠ” μ—„κ²©ν•œ νƒ€μž… 검사가 ν™œμ„±ν™” λ˜μ–΄ μžˆμ„ λ•Œμ—λŠ” 였λ₯˜λ‘œ νŒλ‹¨λ˜λŠ”λ°, λ§Œμ•½ μœ„ μ½”λ“œλ₯Ό 였λ₯˜κ°€ μ•„λ‹Œ κ²ƒμœΌλ‘œ νŒλ‹¨ν•˜κ²Œ ν•˜λ €λ©΄ μ–΄λ–€ μ˜΅μ…˜μ„ μ–΄λ–€ κ°’μœΌλ‘œ μ„€μ •ν•΄μ•Ό ν• κΉŒ?

➑️ 

{
"compilerOptions": { "strictNullChecks" : false }
}

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

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

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

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

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

  • 졜근 κΈ€

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

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