🧩JSON β†’ TypeScript λ³€ν™˜κΈ°

JSONμ—μ„œ TS μΈν„°νŽ˜μ΄μŠ€ 생성

JSON β†’ TypeScript νƒ€μž… λ³€ν™˜κΈ° μ‚¬μš©λ²•

API 응닡 μ˜ˆμ‹œλ₯Ό λΆ™μ—¬ λ„£μœΌλ©΄ κ·Έ λͺ¨μ–‘에 λ§žλŠ” TypeScript μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ¬Έμ„œμ— νƒ€μž…μ΄ μ—†λŠ” μ™ΈλΆ€ APIλ₯Ό 뢙일 λ•Œ, μ†μœΌλ‘œ λ°›μ•„ 적기엔 ν•„λ“œκ°€ λ„ˆλ¬΄ λ§Žμ„ λ•Œ 좜발점으둜 μ’‹μŠ΅λ‹ˆλ‹€.

μΆ”λ‘  κ·œμΉ™μ€ μ΄λ ‡μŠ΅λ‹ˆλ‹€. λ¬Έμžμ—΄μ€ string, μˆ«μžλŠ” number, 참·거짓은 boolean이 λ©λ‹ˆλ‹€. null은 null νƒ€μž… κ·ΈλŒ€λ‘œ λ‘λ‹ˆ, 값이 λ“€μ–΄μ˜¬ 수 μžˆλŠ” μžλ¦¬λŠ” string | null처럼 직접 고쳐 μ£Όμ„Έμš”. μ˜ˆμ‹œλ§ŒμœΌλ‘œλŠ” μ•Œ 수 μ—†λŠ” 빈 배열은 unknown[]이 되고, μ’…λ₯˜κ°€ μ„žμΈ 배열은 (number | string)[]처럼 μœ λ‹ˆμ˜¨μœΌλ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.

μ€‘μ²©λœ κ°μ²΄λŠ” 인라인으둜 두지 μ•Šκ³  별도 μΈν„°νŽ˜μ΄μŠ€λ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€. 이름은 ν‚€λ₯Ό 파슀칼 ν‘œκΈ°λ‘œ λ°”κΎΌ 것이고, 겹치면 뒀에 숫자λ₯Ό 뢙인 λ’€ λͺ‡ 개λ₯Ό κ·Έλ ‡κ²Œ ν–ˆλŠ”μ§€ μ•Œλ € μ€λ‹ˆλ‹€. κ°μ²΄λ“€λ‘œλ§Œ 이루어진 배열은 λͺ¨λ“  μš”μ†Œμ˜ ν‚€λ₯Ό 합쳐 ν•˜λ‚˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ§Œλ“€κ³ , 일뢀 μš”μ†Œμ—λ§Œ 있던 ν‚€μ—λŠ” λ¬ΌμŒν‘œλ₯Ό λΆ™μž…λ‹ˆλ‹€. μ‹λ³„μžλ‘œ μ“Έ 수 μ—†λŠ” ν‚€λŠ” λ”°μ˜΄ν‘œλ‘œ κ°μŒ‰λ‹ˆλ‹€.

ν•˜μ§€ μ•ŠλŠ” 일도 λΆ„λͺ…νžˆ ν•΄ λ‘‘λ‹ˆλ‹€. λ‚ μ§œμ²˜λŸΌ λ³΄μ΄λŠ” λ¬Έμžμ—΄μ„ Date둜 λ°”κΎΈμ§€ μ•Šκ³ , μ •ν•΄μ§„ κ°’λ§Œ μ˜€λŠ” ν•„λ“œλ₯Ό μ—΄κ±°ν˜•μœΌλ‘œ μ’νžˆμ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€. 주석이 λ“  JSON은 읽지 λͺ»ν•˜λ©°, ν˜•μ‹μ΄ 잘λͺ»λ˜λ©΄ μ–΄λŠ μœ„μΉ˜μ—μ„œ μ‹€νŒ¨ν–ˆλŠ”μ§€ 보여 μ€λ‹ˆλ‹€. κ²°κ³ΌλŠ” ν•œ 번 훑어보며 λ‹€λ“¬λŠ” μ΄ˆμ•ˆμž…λ‹ˆλ‹€.

자주 λ¬»λŠ” 질문

빈 배열이 μ™œ unknown[]으둜 λ‚˜μ˜€λ‚˜μš”?

μ˜ˆμ‹œμ— 값이 ν•˜λ‚˜λ„ μ—†μœΌλ©΄ 무엇이 λ“€μ–΄μ˜¬μ§€ μ•Œ 수 μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μš”μ†Œκ°€ ν•˜λ‚˜λΌλ„ μžˆλŠ” μ˜ˆμ‹œλ‘œ λ‹€μ‹œ λ³€ν™˜ν•˜κ±°λ‚˜ 직접 νƒ€μž…μ„ 적어 μ£Όμ„Έμš”.

선택 속성(?)은 μ–΄λ–€ κΈ°μ€€μœΌλ‘œ λΆ™λ‚˜μš”?

객체 λ°°μ—΄μ—μ„œ 일뢀 μš”μ†Œμ—λ§Œ 있던 킀에 λΆ™μŠ΅λ‹ˆλ‹€. μ˜΅μ…˜μ„ 끄면 λͺ¨λ“  ν‚€λ₯Ό ν•„μˆ˜λ‘œ λ§Œλ“€κ³ , λͺ‡ 개λ₯Ό μ„ νƒμœΌλ‘œ μ²˜λ¦¬ν–ˆλŠ”μ§€λŠ” κ²°κ³Ό μœ„μ— ν‘œμ‹œλ©λ‹ˆλ‹€.

쀑첩 객체λ₯Ό 인라인 νƒ€μž…μœΌλ‘œ 받을 수 μžˆλ‚˜μš”?

이 λ„κ΅¬λŠ” 항상 별도 μΈν„°νŽ˜μ΄μŠ€λ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€. μž¬μ‚¬μš©κ³Ό μˆ˜μ •μ΄ 쉽기 λ•Œλ¬Έμ΄λ©°, 인라인이 ν•„μš”ν•˜λ©΄ μƒμ„±λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λΆ™μ—¬ λ„£μ–΄ ν•©μΉ˜λ©΄ λ©λ‹ˆλ‹€.