๐Ÿ”ท

JSON โž” TypeScript ํƒ€์ž… ์ƒ์„ฑ๊ธฐ JSON to TS

JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์™„๋ฒฝํ•œ TypeScript Interface, Type ๋ณ„์นญ ๋ฐ Zod ์Šคํ‚ค๋งˆ๋กœ ์‹ค์‹œ๊ฐ„ ์ž๋™ ๋ณ€ํ™˜

์„ ์–ธ:
๋ฃจํŠธ๋ช…:
์˜ต์…˜:
โœ“์œ ํšจํ•œ JSON ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค. ํƒ€์ž… ์ƒ์„ฑ ์™„๋ฃŒ
ํƒ€์ž… ์ˆ˜: 1์†์„ฑ ์ˆ˜: 0ํฌ๊ธฐ: 0 B
INPUT์›๋ณธ JSON ์ž…๋ ฅ
๐Ÿ’ก

JSON โž” TypeScript ๋ณ€ํ™˜ ํ•ต์‹ฌ ์›์น™ & ๊ฐ€์ด๋“œ

๋ฐฐ์—ด ๊ฐ์ฒด ํ†ตํ•ฉ ์ถ”๋ก  (Object Array Merging)

๋ฐฐ์—ด ๋‚ด ์—ฌ๋Ÿฌ ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ์ „์ฒด ๋ณ‘ํ•ฉ ๋ถ„์„ํ•˜๋ฉฐ, ์ผ๋ถ€ ๊ฐ์ฒด์—๋งŒ ์กด์žฌํ•˜๊ฑฐ๋‚˜ null์ธ ํ‚ค๋Š” optional(?) ๋กœ ์ง€๋Šฅํ˜• ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ˆ˜ ํ‚ค ์•ˆ์ „ ์‹๋ณ„์ž (Quoted Identifiers)

content-type, @id, ์ˆซ์ž ์‹œ์ž‘ ํ‚ค ๋“ฑ ์œ ํšจํ•˜์ง€ ์•Š์€ ์‹๋ณ„์ž๋Š” ์ž๋™์œผ๋กœ ๋”ฐ์˜ดํ‘œ('...')๋กœ ๊ฐ์‹ธ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋ฅผ ์›์ฒœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

Zod ๋Ÿฐํƒ€์ž„ ์Šคํ‚ค๋งˆ ์ง€์›

Next.js Server Actions, tRPC ๋“ฑ์—์„œ ์ฆ‰์‹œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก z.object({...}) ๋ฐ z.infer ์ฝ”๋“œ๋ฅผ ๋™์‹œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ค‘์ฒฉ ๊ตฌ์กฐ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ

์ค‘์ฒฉ ๊ฐ์ฒด๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋ญ‰๊ฐœ์ง€ ์•Š๊ณ  UserProfile, Address ๋“ฑ ์ƒ์œ„ ๋ฌธ๋งฅ์— ๋งž๋Š” PascalCase ๋…๋ฆฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋ถ„๋ฆฌ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ฌ

์˜๊ฒฌ ๋ฐ ์งˆ๋ฌธ

0
0 / 1500
๋ณต์‚ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!