참고사이트

[TypeScript] zod 라이브러리란?

zod란?

스키마 선언 및 유효성 검사 라이브러리 이다.


zod는 왜 사용하나요?

TypeScript를 사용한다고해도 컴파일 시점에서의 타입 에러만 잡아낼 수 있고 런타임 단계에서의 타입 에러는 어쩔수가 없다. 그 이유는 런타임 단계에서 작동되는 것은 JS이기 때문이다.

TypeScript는 number타입만 입력받도록 강제하는 것은 가능하지만

원하는 문자열이나 원하는 숫자 범위를 강제하거나 number타입의 정수/실수 구분은 불가능하다.

그런 이유로 사용한다


parse함수와 safeParse함수

User.parse({username:'홍길동'});
User.safeParse({username:'손흥민'});

parse()메서드로 스키마에 대응되지 않는 값이 들어간 경우는 ZodError를 throw한다

safeParse()메서드로 스키마에 대응되지 않는 값이 들어간 경우는 error, success:false를 가진 객체를

성공했을때는 data 프로퍼티와 success:true를 가진 객체가 반환된다.