광고 영역 (상단)

TypeScript 타입가드 빌더

인터페이스나 타입 정의를 입력하면 is·asserts 타입가드 함수, Zod 스키마, 런타임 검증 코드를 자동 생성합니다.

is 타입가드

asserts 함수

Zod 스키마

테스트 케이스

광고 영역 (하단)

TypeScript 타입가드란?

타입가드(Type Guard)는 런타임에 값의 타입을 좁혀(narrowing) 컴파일러가 타입 안전하게 추론할 수 있도록 돕는 함수입니다. TypeScript에서 가장 흔한 패턴은 value is Type 형태의 반환 타입을 가진 함수입니다. 이 도구는 인터페이스나 타입 별칭을 입력받아 자동으로 타입가드 함수를 생성하므로, 외부 API 응답이나 사용자 입력처럼 신뢰할 수 없는 데이터의 형태를 안전하게 검증할 수 있습니다.

또한 asserts 키워드를 사용하는 단언 함수는 검증에 실패하면 예외를 던지고, 성공하면 호출자 스코프에서 타입이 좁혀지는 특별한 형태입니다. 본 도구는 is·asserts 두 패턴, Zod 스키마, 단위 테스트까지 한 번에 출력합니다.

지원하는 타입 패턴

자주 묻는 질문 (FAQ)

Q. 생성된 타입가드를 어디에 써야 하나요?

A. fetch 응답의 res.json() 결과는 any로 들어옵니다. 이를 if (isUser(data)) 블록으로 감싸면 그 내부에서는 data가 안전하게 User 타입으로 추론됩니다.

Q. Zod와 직접 작성한 타입가드 중 어떤 게 좋나요?

A. Zod는 의존성이 추가되는 대신 스키마·파싱·에러 메시지·변환을 한 번에 처리합니다. 외부 라이브러리를 피하고 싶다면 본 도구가 만드는 순수 TypeScript 타입가드가 가장 가볍습니다.

Q. isasserts의 차이는?

A. isboolean을 반환하므로 if·filter 등 분기에 쓰입니다. asserts는 호출 후 코드부터 타입이 좁혀지므로 가드 절(early throw) 스타일에 적합합니다.