JSON → TypeScript 🔒 브라우저에서 로컬로 실행 — 아무것도 업로드되지 않습니다.

JSON 샘플에서 TypeScript 인터페이스를 생성.

 

이 도구에 대해

API 응답에 맞춰 TypeScript 인터페이스를 손으로 작성하는 것은 단순 작업이며 미묘하게 틀리기 쉽습니다. 샘플 JSON을 여기에 붙여넣으면 대응하는 인터페이스를 즉시 얻습니다. 중첩 객체는 이름이 있는 별도 인터페이스로 추출되고, 객체 배열은 병합되어 일부 항목에 없는 키는 선택적이 되며, 여러 타입을 가진 값은 유니온이 됩니다.

가벼운 추론기를 사용해 모두 브라우저에서 실행됩니다 — JSON은 업로드되지 않습니다. 붙여넣고, 원하면 루트 이름을 바꾸고, 바로 쓸 수 있는 타입을 프로젝트에 복사하세요.

자주 묻는 질문

제 JSON 데이터가 어딘가에 업로드되나요?

아니요. 파싱과 타입 추론은 모두 브라우저의 JavaScript 내에서 실행되며, JSON이 기기 밖으로 나가는 일은 없습니다.

배열 안의 객체들이 서로 다른 필드를 가지고 있으면 어떻게 처리되나요?

배열 내 모든 객체의 키를 하나의 인터페이스로 병합합니다. 모든 객체에 존재하지 않는 키는 제거되지 않고 `?`로 선택적(optional) 표시됩니다.

숫자와 문자열처럼 여러 타입이 섞인 배열은 어떻게 처리되나요?

`(string | number)[]`와 같은 유니온 배열 타입을 생성하여, 샘플에서 실제로 나타난 모든 값을 형태에 그대로 반영합니다.

interface 대신 type 별칭을 생성할 수 있나요?

네, 'as type'을 켜면 생성되는 모든 `interface Name {}`가 `type Name = {}`로 바뀝니다 — 코드베이스에서 type 별칭을 선호한다면 유용합니다.

잘못된 JSON을 붙여넣으면 어떻게 되나요?

이 도구는 일반적인 'invalid JSON' 메시지 대신 문제가 있는 정확한 줄과 열을 표시하는 오류 메시지를 보여주고 바로 해당 위치로 이동할 수 있게 해줍니다.

평평한 JSON뿐 아니라 중첩된 객체와 배열도 처리하나요?

네. 중첩된 객체는 부모 키에서 이름을 따온 자체 인터페이스가 됩니다(예: `profile: {...}`는 `Profile` 인터페이스를 생성). 배열 이름은 단수형으로 바뀝니다(`roles` → `Role[]`). 객체 배열은 모든 요소가 공유하는 인터페이스 하나를 생성하며, 모든 요소에 없는 필드는 `?`로 표시됩니다 — 배열 항목마다 별도의 인터페이스를 만들지 않습니다.