Ink·tab
전체 유틸

JSON 샘플로 인터페이스 추출

API 응답 한 번 붙여넣으면 TypeScript 타입이 그대로 나옵니다.

TypeScript
export interface Address {
  city: string;
  zip: string;
}

export interface PostsItem {
  title: string;
  views: number;
}

export interface Root {
  address: Address;
  age: number;
  email: null;
  id: string;
  name: string;
  posts: PostsItem[];
  tags: string[];
}

브라우저 안에서만 처리됩니다. 네트워크 전송 없음.

언제 쓰나

API 명세 없이 응답 샘플 한 덩어리만 받았을 때, Postman 결과를 곧장 TypeScript 타입으로 옮기고 싶을 때. 직접 손으로 옮기면 빠뜨리는 필드가 늘 한두 개 생기는데, 자동 추출은 그걸 막아 줍니다.

추론 규칙

  • 객체 — 각 필드별 타입을 재귀적으로 추론. 같은 shape 의 객체는 자동으로 재사용.
  • 배열 — 모든 원소 타입을 union 으로 합칩니다. 빈 배열은 unknown[].
  • null — 기본은 T | null. null 을 optional 로 옵션을 켜면 field?: T 형식으로 변환.
  • 원시 타입 — string · number · boolean.

옵션

  • 루트 인터페이스 이름 — 기본 Root. 원하는 이름으로 변경 가능.
  • export 추가export interface ... 로 시작.
  • null 을 optional 로 — null 가능 필드를 ? 로 표현 (Strict null checks 환경에서 가독성).

한계

  • 같은 필드의 다른 호출 응답에서 타입이 바뀌는 경우는 추론 불가. 두 샘플을 합쳐 union 으로 만들고 싶다면 수동 후처리 필요.
  • 함수·심볼·BigInt 같은 JSON 외 타입은 다루지 않습니다.

입력은 어디로 가나요?

JSON 분석과 TypeScript 인터페이스 생성은 모두 이 브라우저 안에서 이루어집니다. 원본 데이터는 어디로도 전송되거나 저장되지 않습니다.