JSON → TypeScript 생성기

JSON에서 TypeScript 인터페이스를 자동 생성. 중첩 객체, 배열, 유니언 타입, 선택적 속성 지원. 브라우저에서 완결, 무료.

100% 클라이언트 사이드 데이터가 브라우저 밖으로 나가지 않습니다 무료 · 회원가입 불필요
JSON 입력
TypeScript 출력

사용 방법

  1. 왼쪽 패널에 JSON을 붙여넣거나 입력합니다. 실시간으로 검증하고 오류를 하이라이트합니다.
  2. 필요하면 Root interface name을 설정합니다(기본값: RootObject).
  3. Make properties optional을 켜면 모든 필드가 ? 선택적 속성이 됩니다.
  4. Use type instead of interface를 켜면 출력 키워드가 type으로 바뀝니다.
  5. Generate TypeScript를 클릭해 인터페이스를 생성합니다.
  6. Copy를 클릭해 출력을 클립보드에 복사합니다.

타입 추론 규칙

  • nullnull
  • 문자열 → string
  • 숫자 → number
  • 불리언 → boolean
  • 빈 배열 → unknown[]
  • 객체 배열 → 병합된 인터페이스 + ItemName[]
  • 혼합 기본 타입 배열 → 유니언 타입(예: (string | number)[])
  • 중첩 객체 → 별도의 명명된 인터페이스

예시

다음 JSON을 입력하면:

{"user": {"name": "Alice", "age": 30}, "tags": ["admin", "user"]}

다음과 같이 생성됩니다:

interface User {
  name: string;
  age: number;
}

interface RootObject {
  user: User;
  tags: string[];
}

FAQ

이 도구는 무엇을 생성합니까?

JSON 객체에서 TypeScript interface(또는 type alias) 선언을 생성합니다. 중첩된 객체는 각각 별도의 명명된 인터페이스가 되고, 배열 내 혼합 타입은 유니언 타입이 됩니다.

중첩 객체는 어떻게 처리됩니까?

각 중첩 객체 필드는 필드 키의 PascalCase 이름을 가진 별도의 인터페이스로 추출됩니다. 예를 들어 'address' 필드는 'Address' 인터페이스가 되고, 부모 인터페이스는 그 이름으로 참조합니다.

객체 배열은 어떻게 처리됩니까?

배열에 객체가 포함된 경우 모든 객체의 필드가 하나의 아이템 인터페이스로 병합됩니다. 일부 객체에만 있는 필드는 선택적으로 표시됩니다.

'Make properties optional' 옵션은 무엇입니까?

체크하면 생성된 모든 인터페이스의 모든 속성에 '?'가 붙어 선택적이 됩니다. 불완전한 데이터를 받을 가능성이 있거나 느슨한 타입 정의가 필요할 때 유용합니다.

interface와 type의 차이는 무엇입니까?

둘 다 객체 형태를 선언할 수 있습니다. 'interface'는 선언 병합을 지원하며 객체 타입의 관용적인 표현입니다. 'type'은 더 유연하여 기본 타입, 유니언 타입, 튜플도 표현할 수 있습니다. 'Use type instead of interface'로 전환할 수 있습니다.

데이터가 서버로 전송됩니까?

아니요. 전체 타입 추론 엔진이 브라우저에서 실행됩니다. 데이터는 기기 밖으로 나가지 않습니다.