
@ValidateNested와 @Type 데코레이터를 함께 씁니다.@ValidateNested({ each: true })는 배열 안의 각 요소를 개별적으로 검증하라는 의미입니다.@Type(() => Image)는 중첩된 객체의 타입을 명시해 변환과 검증이 올바르게 동작하도록 합니다.NestJS에서 DTO를 사용해 중첩 객체의 검증을 처리하는 방법을 정리합니다.
예를 들어 아래와 같은 Image 인터페이스를 가진 객체 배열을 검증하려면 어떻게 해야 할까요.
interface Image { id:number url:string created_at:Date; updated_at:Date; home_id:number; }
@ValidateNested와 @Type을 사용하면 됩니다.
@IsArray() @ValidateNested({ each: true }) @Type(() => Image) images: Image[];
위 코드는 배열 형태만 받으며, 중첩된 상태를 각각 검증한다는 뜻입니다. 그리고 그 중첩된 객체의 타입은 Image 타입이라는 의미입니다.