본문으로 건너뛰기
ToolMug

JSON 타입스크립트 변환

API 응답, 설정 파일, 테스트 데이터 같은 JSON 샘플을 코드에 바로 붙여넣을 수 있는 TypeScript 인터페이스로 바꿔요. 중첩 객체는 이름이 붙은 별도의 타입이 되고, 배열 항목 간의 차이는 선택적 속성이나 유니언 타입이 돼요.

브라우저에서 실행 — 입력한 내용은 업로드되지 않아요

사용 방법

  1. JSON 샘플을 붙여넣거나 "예시 불러오기"를 클릭하세요.
  2. 루트 타입의 이름을 설정하세요.
  3. 인터페이스와 타입 별칭 중에서 고르세요.
  4. 생성된 타입을 복사하거나 다운로드하세요.

옵션 설명

루트 타입 이름
최상위 타입의 이름으로, 예를 들어 User나 ApiResponse처럼 정해요. 중첩 타입은 키 이름을 따서 이름이 붙어요. address는 Address가 되고, posts의 항목은 Post가 돼요.
interface 대신 type 사용
인터페이스 대신 타입 별칭(type User = { … })을 생성해요. 일반 데이터에서는 둘 다 똑같이 동작해요.

예시

{"id": 1, "tags": ["a"], "owner": {"name": "Ada"}}는 다음과 같이 변환돼요:

export interface Owner {
  name: string;
}

export interface Root {
  id: number;
  tags: string[];
  owner: Owner;
}

자주 묻는 질문

객체 배열은 어떻게 처리되나요?

모든 항목이 하나의 타입으로 병합돼요. 일부 항목에만 있는 키는 선택적 속성(key?)이 되고, 가끔 null인 값은 string | null 같은 유니언 타입이 돼요.

필드 타입이 unknown으로 나오는 이유는 뭔가요?

샘플에서 그 필드의 값이 null뿐이라 실제 타입을 추론할 수 없었기 때문이에요. unknown을 올바른 타입으로 바꾸거나, 그 필드에 값이 있는 샘플을 붙여넣으세요.

정수와 소수는 다른 타입이 되나요?

TypeScript에서는 아니에요. 둘 다 number가 돼요. Go, Rust, Python 출력에서는 구분해요.

JSON이 업로드되나요?

아니요. 타입은 브라우저에서 생성되므로 실제 데이터가 담긴 API 응답도 기기 밖으로 나가지 않아요.

개인정보 보호

이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.

관련 도구