Skip to main content
Sonamuμ—μ„œ 자주 λ°œμƒν•˜λŠ” TypeScript νƒ€μž… κ΄€λ ¨ 였λ₯˜μ™€ ν•΄κ²° 방법을 λ‹€λ£Ήλ‹ˆλ‹€.

Reserved Keywords 좩돌

증상

λŸ°νƒ€μž„ μ—λŸ¬:
λ˜λŠ” Sonamu sync μ‹œ:

원인

JavaScript/TypeScript의 μ˜ˆμ•½μ–΄λ₯Ό λ©”μ„œλ“œλͺ…μ΄λ‚˜ 속성λͺ…μœΌλ‘œ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

μ˜ˆμ•½μ–΄ μ‚¬μš©μ„ ν”Όν•˜κ±°λ‚˜ λ‹€λ₯Έ 이름 μ‚¬μš©:
Sonamuκ°€ κ²€μ¦ν•˜λŠ” 72개 μ˜ˆμ•½μ–΄:

νƒ€μž… μΆ”λ‘  μ‹€νŒ¨

증상

원인

  1. Sonamu syncerκ°€ μ œλŒ€λ‘œ μ‹€ν–‰λ˜μ§€ μ•ŠμŒ
  2. .generated 파일이 였래됨
  3. TypeScript μ„œλ²„ μΊμ‹œ 문제

ν•΄κ²° 방법

1. Syncer μž¬μ‹€ν–‰

2. TypeScript μ„œλ²„ μž¬μ‹œμž‘

VSCode:

3. Generated 파일 확인

파일이 μ—†κ±°λ‚˜ μ˜€λž˜λ˜μ—ˆλ‹€λ©΄ sync μž¬μ‹€ν–‰.

BaseModel λ©”μ„œλ“œ νƒ€μž… 였λ₯˜

증상

원인

BaseModel의 auto-generated λ©”μ„œλ“œ νƒ€μž…μ΄ μ œλŒ€λ‘œ μ μš©λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

1. entity.json 확인

2. Model 클래슀 μ •μ˜ 확인

3. Syncer둜 νƒ€μž… μž¬μƒμ„±

Union νƒ€μž… 였λ₯˜

증상

νƒ€μž… μ•ˆμ „μ„±μ΄ 보μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

λͺ…ν™•ν•œ νƒ€μž… μ§€μ •:

Zod μŠ€ν‚€λ§ˆ νƒ€μž… 뢈일치

증상

원인

API λ©”μ„œλ“œ νŒŒλΌλ―Έν„° νƒ€μž…κ³Ό Zod μŠ€ν‚€λ§ˆκ°€ μΌμΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

1. νŒŒλΌλ―Έν„° νƒ€μž… μˆ˜μ •

2. λͺ…μ‹œμ  Zod μŠ€ν‚€λ§ˆ μ‚¬μš©

Intersection νƒ€μž… 였λ₯˜

증상

ν•΄κ²° 방법

Sonamu 0.7.29+λΆ€ν„°λŠ” intersection/union νƒ€μž…μ„ μžλ™μœΌλ‘œ κ΄„ν˜Έλ‘œ κ°μŒ‰λ‹ˆλ‹€:
μ—…λ°μ΄νŠΈ ν›„ sync μž¬μ‹€ν–‰:

Template Literal νƒ€μž… 였λ₯˜

증상

원인

Zod v4μ—μ„œ template literal νƒ€μž… 처리 방식이 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

SonamuλŠ” μžλ™μœΌλ‘œ backslash escaping 처리:
μƒμ„±λœ Zod μŠ€ν‚€λ§ˆ:

μˆœν™˜ μ°Έμ‘° νƒ€μž… 였λ₯˜

증상

원인

두 entityκ°€ μ„œλ‘œλ₯Ό μ°Έμ‘°ν•˜μ—¬ μˆœν™˜ μ˜μ‘΄μ„±μ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

1. Type-only import μ‚¬μš©

2. 곡톡 νƒ€μž… 파일 생성

파일 νƒ€μž… 였λ₯˜ (@upload)

증상

원인

bufferedFiles?.[0]의 νƒ€μž…μ€ BufferedFile | undefinedμ΄λ―€λ‘œ, null 체크 없이 속성에 μ ‘κ·Όν•˜λ©΄ νƒ€μž… 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

ν•΄κ²° 방법

νƒ€μž… κ°€λ“œ 였λ₯˜

증상

원인

νƒ€μž… κ°€λ“œ ν•¨μˆ˜κ°€ νƒ€μž… 쒁히기(type narrowing)λ₯Ό ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법

Type predicate μ‚¬μš©:

μ œλ„€λ¦­ νƒ€μž… μΆ”λ‘  μ‹€νŒ¨

증상

ν•΄κ²° 방법

λͺ…μ‹œμ  νƒ€μž… μ§€μ •:
λ˜λŠ” νƒ€μž… 검증:

κ΄€λ ¨ λ¬Έμ„œ