KO
내 도구

JSON TypeScript 인터페이스 변환기

JSON을 붙여 넣으면 TypeScript 인터페이스를 만들어 줍니다. 중첩 객체는 이름 있는 타입이 되고, 배열 항목은 선택 필드로 합쳐지며, null은 유니온 타입이 됩니다.

TypeScript
선언 수
3

모든 샘플에서 null인 필드는 null 타입으로 지정됩니다. 실제 타입을 알게 되면 바꿔 주세요.

내 도구 →
광고

JSON 응답을 붙여 넣으면 코드에 바로 넣을 수 있는 TypeScript 인터페이스를 만들어 줍니다. 중첩 객체는 각각 이름 있는 인터페이스가 되고, 객체 배열은 하나로 합쳐 일부 항목에 없는 필드를 선택 필드로 표시하며, 가끔 null이 되는 값은 | null 유니온이 됩니다. 변환은 브라우저 안에서 이루어지므로 비공개 API 데이터가 어디에도 업로드되지 않습니다.

사용 방법

  1. 대표적인 JSON 샘플을 붙여 넣습니다. 배열에 항목이 여러 개 들어 있는 샘플이 가장 좋습니다.
  2. 최상위 타입의 이름을 정합니다(기본값은 Root).
  3. interface와 type 별칭 중 하나를 고르고, export를 붙일지 선택합니다.
  4. 결과를 복사한 뒤 바꾸고 싶은 타입 이름을 수정합니다.

계산식

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 검증기를 사용하세요.

출처

최종 업데이트:

인용·퍼가기
APA

kakaoCalc. (2026, November 8). JSON TypeScript 인터페이스 변환기. https://kakao.mobile/ko/tools/json-to-typescript-tool/

MLA

“JSON TypeScript 인터페이스 변환기.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/json-to-typescript-tool/.

광고