JSON TypeScript 변환기 — JSON으로 타입 생성
JSON 샘플에서 TypeScript 타입 추론, 중첩 객체와 배열 지원
브라우저에서 처리 · 서버로 전송되지 않음
샘플에서 타입을 추론합니다. 속성은 필수이며 빈 배열은 unknown[], 서로 다른 배열 요소는 유니언 타입이 됩니다. 런타임 검증 코드는 생성하지 않습니다.
사용법
- API 응답이나 설정 파일의 JSON을 붙여 넣으세요.
- 타입 이름에 Root, ApiResponse처럼 사용할 이름을 입력하세요.
- 생성된 export type 선언을 복사해 TypeScript 파일에 붙여 넣으세요.
- 실제 API에서 생략될 수 있는 속성은 검토 후 선택적 속성으로 수정하세요.
변환 기준
문자열은 string, 숫자는 number, 불리언은 boolean, null은 null로 추론합니다. 객체 속성은 모두 필수입니다. 키를 따옴표로 감싸므로 한글, 중국어, 이모지, 하이픈이 있는 키도 선언할 수 있습니다. 배열은 서로 다른 타입을 유니언으로 연결하며 같은 타입은 한 번만 사용합니다. 빈 객체는 Record<string, never>로 표현합니다.
중복 키가 있는 JSON은 이전 값이 조용히 사라지지 않도록 거부합니다. 주석과 후행 쉼표도 허용하지 않습니다. 타입 이름은 영문·숫자·밑줄·달러 기호를 사용하고 숫자로 시작하거나 예약어를 쓰면 안 됩니다. 입력은 100만 자, 타입 추론 중첩은 64단계까지 제한합니다.
예시
{"name":"민수","score":3,"tags":["中文","😀"]}는 name에 string, score에 number, tags에 Array[1,"two",null]은 Array<number | string | null>이 됩니다.
데이터 처리
변환은 브라우저에서 이루어집니다. 입력을 서버로 보내거나 저장하지 않으며, 생성된 타입은 샘플에 대한 추정이므로 실제 스키마와 비교해 사용하세요.
자주 묻는 질문
배열의 객체마다 속성이 다르면 어떻게 되나요?
각 객체의 모양을 유니언 타입으로 연결합니다. 여러 객체의 속성을 합쳐 선택적 속성으로 만들지는 않습니다.
빈 배열의 타입은 무엇인가요?
요소를 관찰할 수 없으므로 unknown[]로 생성합니다. 실제 데이터 계약에 맞게 직접 구체화하세요.
실제 API 데이터를 검증하나요?
아니요. 타입 선언은 컴파일 시점의 개발 도구이며 런타임 검증 함수가 아닙니다. 샘플에 없는 경우도 별도로 검토해야 합니다.