JSON TypeScript 인터페이스 변환기
JSON을 붙여 넣으면 TypeScript 인터페이스를 만들어 줍니다. 중첩 객체는 이름 있는 타입이 되고, 배열 항목은 선택 필드로 합쳐지며, null은 유니온 타입이 됩니다.
모든 샘플에서 null인 필드는 null 타입으로 지정됩니다. 실제 타입을 알게 되면 바꿔 주세요.
JSON 응답을 붙여 넣으면 코드에 바로 넣을 수 있는 TypeScript 인터페이스를 만들어 줍니다. 중첩 객체는 각각 이름 있는 인터페이스가 되고, 객체 배열은 하나로 합쳐 일부 항목에 없는 필드를 선택 필드로 표시하며, 가끔 null이 되는 값은 | null 유니온이 됩니다. 변환은 브라우저 안에서 이루어지므로 비공개 API 데이터가 어디에도 업로드되지 않습니다.
사용 방법
- 대표적인 JSON 샘플을 붙여 넣습니다. 배열에 항목이 여러 개 들어 있는 샘플이 가장 좋습니다.
- 최상위 타입의 이름을 정합니다(기본값은 Root).
- interface와 type 별칭 중 하나를 고르고, export를 붙일지 선택합니다.
- 결과를 복사한 뒤 바꾸고 싶은 타입 이름을 수정합니다.
계산식
string → string · number → number · true/false → boolean · null → null · [ … ] → T[] · { … } → interface
모든 값을 살펴보고 같은 위치에서 발견된 타입을 합칩니다. 배열의 객체 중 일부에만 있는 키에는 ?(선택)가 붙습니다. 한 위치에 서로 다른 타입이 있으면 string | number 같은 유니온이 됩니다. 모양이 같은 객체는 인터페이스 하나를 공유하고, 배열 항목 타입은 키의 단수형으로 이름을 붙입니다(orders → Order). 중복된 키와 유한한 안전 정수 범위를 벗어난 숫자는 거부하며, 그 밖의 소수는 JavaScript 정밀도를 따릅니다.
예시
예시 사용자 레코드는 선언 세 개를 만듭니다. Root에는 id: number, name: string, tags: string[], address: Address, orders: Order[], manager: null이 있습니다. Address에는 street, city, postcode가 있고 모두 문자열입니다. Order에는 id: string, total: number, items: number, coupon?: string이 있습니다. 쿠폰이 있는 주문이 두 번째 하나뿐이라 선택 필드입니다.
자주 묻는 질문
interface와 type 중 무엇을 써야 하나요?
단순한 객체 모양에는 둘 다 쓸 수 있습니다. 인터페이스는 확장할 수 있고 여러 선언을 합칠 수 있으며, type 별칭은 유니온과 튜플도 표현할 수 있습니다. 많은 스타일 가이드는 객체 모양에 interface를 권장합니다.
필드가 선택으로 표시되는 이유는 무엇인가요?
배열 안의 객체 중 하나 이상에 그 필드가 없기 때문입니다. API가 항상 보낸다면 더 완전한 샘플 데이터를 넣거나 ?를 직접 지우세요.
필드가 null 타입으로 나오는 이유는 무엇인가요?
샘플 값이 모두 null이어서 추론할 다른 정보가 없기 때문입니다. string | null처럼 실제 타입으로 바꿔 주세요.
이 도구가 실행 중에 데이터를 검사해 주나요?
아닙니다. TypeScript 타입은 컴파일하면 사라집니다. API 응답을 실행 중에 검증하려면 Zod 같은 스키마 라이브러리나 JSON Schema 검증기를 사용하세요.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/json-to-typescript-tool/
인용·퍼가기
kakaoCalc. (2026, November 8). JSON TypeScript 인터페이스 변환기. https://kakao.mobile/ko/tools/json-to-typescript-tool/
“JSON TypeScript 인터페이스 변환기.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/json-to-typescript-tool/.