본문 바로가기

Backend/NestJS

param.ts 파일이나 dto에서 다른 파일에서 쓰여진 Enum 끌고오기

param.ts 파일에서 기존에 작성했던 Params에 다른 파일에서 작성한 Enum을 끌고와야 할 일이 있었다. 

그래서 이 방법을 어떻게 해야하나 고민하던 중 해결할 수 있었다. 

 

기존 방식

export class CompanyRequestParams extends CollectionAddressOrSlugParams {
  @Type(() => Number)
  @IsNumber()
  @IsOptional()
  readonly tokenId: number;

  @IsString()
  @IsOptional()
  readonly walletAddress: string;

  // 여기에 Enum 파일 끌고올 것
}

그럼 enum에서 선언된 @Enum 어노테이션을 통해 가져와야 하지 않겠는가. 

@Enum('benefitType')이라고 다른 파일에서 선언이 되어있는 상태다. 

 

해결한 방식 

export class CompanyRequestParams extends CollectionAddressOrSlugParams {
  @Type(() => Number)
  @IsNumber()
  @IsOptional()
  readonly tokenId: number;

  @IsString()
  @IsOptional()
  readonly walletAddress: string; 
  
  @IsEnum(BenefitType) 
  @IsOptional() 
  readonly benefitType: BenefitType;
}

이렇게 되는데, 자동으로 import 부분에 해당 BenefitType이 쓰여진 파일까지 import 된다.