🔷 JSON to TypeScript -- 즉시 인터페이스 생성, 무료 & 오프라인
JSON 객체나 배열을 붙여넣으면 즉시 TypeScript 인터페이스(또는 타입 별칭) 정의를 생성합니다. 완전 무료이며 로그인이나 업로드가 필요 없고, 모든 처리가 브라우저 안에서만 이루어집니다. 중첩 객체는 중첩 인터페이스로, 객체 배열은 선택적 필드를 포함한 단일 타입으로 병합되며, 혼합 타입 배열은 자동으로 유니온 타입으로 변환됩니다.
소개
이 JSON-to-TypeScript 변환기는 순수 클라이언트 사이드 타입 추론 워커를 사용합니다. 외부 라이브러리나 서버 호출이 전혀 없습니다. JSON의 모든 노드를 재귀적으로 방문하여: 기본값은 string, number, boolean, null로 매핑되고, 중첩 객체는 이름 있는 자식 인터페이스를 생성하며, 객체 배열은 모든 요소의 형태를 병합해 일부 요소에 없는 키는 선택적(key?: Type)으로 처리하고, 혼합 타입 배열은 (string | number)[]와 같은 유니온 타입을 생성합니다. interface와 type 별칭 중 선택할 수 있고, 루트 인터페이스 이름도 지정할 수 있습니다. 모든 처리는 브라우저에서 이루어지며 JSON 데이터는 어디에도 전송되지 않습니다.
사용 방법
- JSON을 입력 필드에 붙여넣으세요 -- 객체, 배열, 중첩 구조 모두 지원합니다.
- 루트 인터페이스 이름(기본값: RootObject)을 설정하고 interface 또는 type 출력을 선택하세요.
- TypeScript로 변환 버튼을 클릭하거나 Ctrl+Enter를 눌러 즉시 정의를 생성하세요.
- TypeScript 출력을 확인하세요 -- 중첩 인터페이스가 먼저 표시되고 루트 인터페이스가 마지막에 나옵니다.
- 복사 버튼을 클릭해 결과를 클립보드에 복사한 뒤 TypeScript 프로젝트에 바로 붙여넣으세요.
자주 묻는 질문
- JSON이 서버에 업로드되나요?
- 아니요. 모든 처리는 JavaScript를 사용해 브라우저 안에서만 이루어집니다. JSON 데이터는 기기 밖으로 나가지 않습니다.
- 형태가 다른 객체 배열은 어떻게 처리되나요?
- 모든 요소의 형태가 하나의 인터페이스로 병합됩니다. 모든 요소에 있는 키는 필수이고, 일부 요소에 없는 키는 ?로 선택적으로 표시됩니다.
- interface와 type 출력 모드의 차이는 무엇인가요?
- interface는 TypeScript interface 선언(확장 가능, 객체 형태에 선호)을 사용합니다. type은 타입 별칭(더 유연하며 루트 레벨에서 기본값·유니온 지원)을 사용합니다. 객체 형태에 대해서는 둘 다 동등한 결과를 생성합니다.
- 깊게 중첩된 JSON도 처리할 수 있나요?
- 네. 타입 워커는 완전히 재귀적으로 동작합니다. 각 중첩 객체는 고유한 이름의 인터페이스를 생성하며, 인터페이스는 의존성 순서(가장 깊은 것 먼저)로 출력되어 TypeScript에서 전방 참조 오류 없이 컴파일됩니다.
- JSON 배열에 문자열과 숫자 같은 혼합 타입이 있으면 어떻게 되나요?
- 혼합 타입 배열은 유니온 타입을 생성합니다. 예를 들어 [1, 'hello', true]는 (number | string | boolean)[]이 됩니다. 배열이 단일하고 일관된 타입이라면 유니온이 필요하지 않습니다.