Skip to main content
TypeScript의 νƒ€μž… 체크 μ˜΅μ…˜μ€ μ½”λ“œμ˜ μ•ˆμ •μ„±μ„ κ²°μ •ν•©λ‹ˆλ‹€. SonamuλŠ” strict λͺ¨λ“œλ₯Ό 기본으둜 ν™œμ„±ν™”ν•˜μ—¬ μ΅œλŒ€ν•œμ˜ νƒ€μž… μ•ˆμ •μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

Strict λͺ¨λ“œ

SonamuλŠ” λͺ¨λ“  strict μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
strict: trueλŠ” μœ„μ˜ λͺ¨λ“  μ˜΅μ…˜μ„ ν•œ λ²ˆμ— ν™œμ„±ν™”ν•˜λŠ” 단좕 μ„€μ •μž…λ‹ˆλ‹€.

Strict μ˜΅μ…˜ 상세

any νƒ€μž… λͺ…μ‹œ ν•„μš”

κΈ°λŠ₯:
  • νƒ€μž…μ„ μΆ”λ‘ ν•  수 없을 λ•Œ anyλ₯Ό μ•”λ¬΅μ μœΌλ‘œ μ‚¬μš©ν•˜μ§€ λͺ»ν•˜λ„둝 λ°©μ§€
μ˜ˆμ‹œ:
νƒ€μž…μ„ λͺ…μ‹œν•˜κΈ° μ–΄λ €μš΄ 경우 unknown을 μ‚¬μš©ν•˜μ„Έμš”. any보닀 μ•ˆμ „ν•©λ‹ˆλ‹€.

μΆ”κ°€ νƒ€μž… 체크 μ˜΅μ…˜

SonamuλŠ” strict λͺ¨λ“œ 외에도 μΆ”κ°€ 체크 μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ½”λ“œ κ²½κ³ 

μ˜ˆμ‹œ:
μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” νŒŒλΌλ―Έν„°λŠ” _둜 μ‹œμž‘ν•˜λ©΄ κ²½κ³ κ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

더 μ—„κ²©ν•œ μ˜΅μ…˜ (선택)

ν•„μš”μ— 따라 μΆ”κ°€ν•  수 μžˆλŠ” μ˜΅μ…˜λ“€μž…λ‹ˆλ‹€.
인덱슀 μ‹œκ·Έλ‹ˆμ²˜λŠ” λŒ€κ΄„ν˜Έλ‘œλ§Œ μ ‘κ·Ό
μ–Έμ œ μ‚¬μš©:
  • 동적 ν”„λ‘œνΌν‹° 접근을 λͺ…μ‹œμ μœΌλ‘œ λ§Œλ“€κ³  싢을 λ•Œ
Optional ν”„λ‘œνΌν‹°λŠ” undefined만 ν—ˆμš©
μ–Έμ œ μ‚¬μš©:
  • Optionalκ³Ό | undefinedλ₯Ό μ—„κ²©νžˆ κ΅¬λΆ„ν•˜κ³  싢을 λ•Œ
λ§Žμ€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν˜Έν™˜μ„± λ¬Έμ œκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

νƒ€μž… 체크 λΉ„ν™œμ„±ν™”

νŠΉμ • μƒν™©μ—μ„œ νƒ€μž… 체크λ₯Ό μš°νšŒν•΄μ•Ό ν•  λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

ꢌμž₯ μ„€μ •

μ‹ κ·œ ν”„λ‘œμ νŠΈλŠ” λͺ¨λ“  μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•˜μ„Έμš”.

μ„±λŠ₯ 고렀사항

νƒ€μž… 체크 μ˜΅μ…˜μ΄ λ§Žμ„μˆ˜λ‘ 컴파일 μ‹œκ°„μ΄ 증가할 수 μžˆμŠ΅λ‹ˆλ‹€.
skipLibCheck
  • node_modules의 .d.ts νŒŒμΌμ„ μ²΄ν¬ν•˜μ§€ μ•ŠμŒ
  • 컴파일 μ‹œκ°„ 크게 단좕
  • Sonamu κΈ°λ³Έ ν™œμ„±ν™”
incremental
  • λ³€κ²½λœ 파일만 재컴파일
  • .tsbuildinfo νŒŒμΌμ— μΊμ‹œ μ €μž₯

λ‹€μŒ 단계

tsconfig.json

전체 TypeScript 섀정을 ν™•μΈν•˜μ„Έμš”

Path Mapping

μ ˆλŒ€ 경둜 importλ₯Ό μ„€μ •ν•˜μ„Έμš”

Entity μ •μ˜

νƒ€μž… μ•ˆμ „ν•œ Entityλ₯Ό μž‘μ„±ν•˜μ„Έμš”

ν…ŒμŠ€νŠΈ μž‘μ„±

νƒ€μž… μ•ˆμ „ν•œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜μ„Έμš”