한국어

JSON TypeScript 변환기 — JSON으로 타입 생성

JSON 샘플에서 TypeScript 타입 추론, 중첩 객체와 배열 지원

브라우저에서 처리 · 서버로 전송되지 않음

샘플에서 타입을 추론합니다. 속성은 필수이며 빈 배열은 unknown[], 서로 다른 배열 요소는 유니언 타입이 됩니다. 런타임 검증 코드는 생성하지 않습니다.

변환 결과

사용법

  1. API 응답이나 설정 파일의 JSON을 붙여 넣으세요.
  2. 타입 이름에 Root, ApiResponse처럼 사용할 이름을 입력하세요.
  3. 생성된 export type 선언을 복사해 TypeScript 파일에 붙여 넣으세요.
  4. 실제 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 데이터를 검증하나요?

아니요. 타입 선언은 컴파일 시점의 개발 도구이며 런타임 검증 함수가 아닙니다. 샘플에 없는 경우도 별도로 검토해야 합니다.

필요한 도구가 있나요?