JSON → TypeScript 타입
JSON 샘플에서 TypeScript 인터페이스를 즉시 추론
로컬 실행
loading…
이 도구에 대해
API 응답이나 설정 파일 같은 JSON 샘플을 붙여넣으면 그로부터 추론된 TypeScript 인터페이스를 얻습니다. 중첩 객체는 중첩 타입이 되고, 배열은 요소 타입을 얻으며(혼합 내용에는 유니온), 유효한 식별자가 아닌 키는 올바르게 따옴표로 감싸집니다.
생성된 타입은 계약이 아니라 출발점입니다. 추론은 샘플 하나만 보므로, 예시에서 우연히 null이었던 필드는 null로 타입이 잡히고, 없었던 선택적 필드는 아예 알 수 없습니다. 출력은 의도적으로 평범합니다. 데코레이터도, 런타임 검증도 없어서 어디에나 붙여넣고 다듬을 수 있습니다.
요청마다 달라지는 필드는 두 번째 샘플을 돌려 직접 병합하거나, 구조가 안정되면 스키마 우선 도구(OpenAPI, zod)로 졸업하세요. 하지만 일상의 "이 응답에 쓸 타입 하나만 있으면 돼" 순간에는, 한 번 붙여넣는 것으로 충분합니다.
자주 묻는 질문
- 왜 제 nullable 필드가 그냥 null로 타입이 잡혔나요?
- 추론은 붙여넣은 샘플만 봅니다. 거기서 필드가 null이었다면 null이 알 수 있는 전부입니다. 생성 후 string | null(또는 실제 타입)로 바꾸거나, 필드에 값이 있는 샘플을 붙여넣으세요.
- 선택적 필드는 어떻게 처리되나요?
- 감지되지 않습니다. 샘플 하나로는 "항상 존재"와 "이번에 존재"를 구분할 수 없습니다. 샘플에 없는 필드는 타입에도 없습니다. API가 생략한다는 것을 아는 필드는 수동으로 선택적(name?:)으로 표시하세요.
- 혼합 타입 배열은 무엇을 만들어 내나요?
- 유니온입니다. [1, "a"] 는 (number | string)[] 으로 추론됩니다. 빈 배열은 살펴볼 요소가 없어 unknown[] 으로 추론됩니다. 실제 요소 타입을 알게 되면 교체하세요.
- 추론된 타입을 써야 하나요, zod 같은 스키마 라이브러리를 써야 하나요?
- 추론된 인터페이스는 컴파일 타임 전용입니다. 런타임에는 아무것도 검증하지 않습니다. 내부 도구와 빠른 타입 지정에는 완벽하지만, 런타임의 신뢰할 수 없는 입력에는 zod/valibot 스키마를 정의하고 거기서 정적 타입을 파생시키세요.