🧩

JSON to TypeScript 인터페이스

JSON을 붙여넣으면 중첩 객체와 배열을 포함한 TypeScript interface를 자동으로 추론합니다

설명: 타입은 이 JSON에서 추론한 것이며 JSON Schema가 아닙니다. 배열 안 요소 구조가 일치하지 않으면 유니온 타입이 생성되고, 필드 이름이 유효한 식별자가 아니면 따옴표가 붙습니다.

사용 설명서

JSON to TypeScript 인터페이스 사용 설명\n\n## 기능 소개\nAPI 응답 JSON을 받았을 때 TypeScript 타입을 직접 작성하는 것은 시간이 많이 걸립니다. 이 도구는 JSON 구조를 읽고 중첩된 interface를 재귀적으로 추론합니다.\n\n## 사용 방법\n1. JSON을 입력란에 붙여넣고 「예시 채우기」를 누르면 복잡한 예시를 먼저 볼 수 있습니다\n2. 루트 인터페이스 이름(기본값 Root)을 입력하고 `interface` 또는 `type` 별칭을 선택합니다\n3. 필드가 누락될 수 있다면 「필드 선택 사항」을 체크해 각 필드에 `?`를 추가합니다\n4. 「TypeScript 생성」을 누르면 결과가 참조 순서대로 출력되며, 하위 타입이 먼저, 루트 타입이 나중에 나옵니다\n5. 「결과 복사」를 눌러 복사합니다\n\n## 주의 사항\n- 타입은 이 하나의 JSON에서 추론됩니다: 필드가 `null`이면 `null`만 얻고, 누락된 필드도 알 수 없습니다. 더 정확하려면 여러 샘플을 사용하거나 직접 보완하세요\n- 배열 안 요소 구조가 일치하지 않으면 유니온 타입이 생성됩니다. 예: `(A | B)[]`\n- 빈 배열은 `unknown[]`만 추론할 수 있으므로 직접 타입을 보완해야 합니다\n- 필드명이 유효한 식별자가 아니면 따옴표로 감싸 TypeScript 문법에 맞춥니다

자주 묻는 질문

배열 안 객체 타입이 일치하지 않으면 어떻게 되나요?

도구가 각기 다른 구조마다 인터페이스를 생성하고 배열 요소 타입을 유니온 타입으로 작성합니다. 예: `(User | Admin)[]`. 생성 후 실제 비즈니스에 맞게 좁힐 수 있습니다.

왜 null 필드의 타입이 null인가요?

이 데이터 하나만으로는 나중에 문자열이나 숫자가 될지 판단할 수 없기 때문입니다. 실제 데이터에 나타난 타입을 모두 보완하거나 수동으로 `string | null`로 바꾸는 것을 권장합니다.

Go나 Java 타입 생성도 지원하나요?

현재는 TypeScript만 생성합니다. 구조를 먼저 살펴보고 싶다면 이 도구로 추론한 중첩 인터페이스 이름을 다른 언어의 구조체로 바꾸는 것도 어렵지 않습니다.