일기/에러일기

[에러일기] 11회차 - DTO를 통한 선택적(옵셔널) 프로퍼티

표자 2023. 3. 13. 10:40
728x90
반응형

1. 문제

맛집리스트 생성시 처음에는 이름만 데이터로 받고 생성하려함. (수정시에는 다른 정보도 선택적 수용)

그런데 네임만 입력하니 다른것도 입력하라는 문구가 발생

 

2. 시도해본 것들

  @IsString()
  readonly type?: 'myList';

위와 같이 type? 로 모두 적어줬으나 계속 같은 에러 발생

{
  "success": false,
  "timestamp": "2023. 3. 13. 오전 10:28:58",
  "statusCode": 400,
  "message": [
    "type must be a string",
    "description must be a string",
    "image must be a string",
    "visibility must be a string"
  ],
  "error": "Bad Request"
}

 

3. 해결과정

GPT에게 연속적으로 질문했다.

처음에는 ?를 붙이라 했고 말해준대로 해도 안된다하니,

main.ts 파일에서 다음과 같이 app.useGlobalPipes()를 적용하라해서 이미 있는거라고 하니

  @IsString()
  @IsOptional()
  readonly type?: 'myList';

@IsOptional까지 넣으라고 답변해주었고 실행하니 정상적용되었다.

 

4. 알게 된 점

물음표만 붙이면 모두 옵셔널이 되는줄 알았는데,

옵셔널 데코레이터가 있다는걸 알게되었다. 앞으로도 자주 쓸 것 같은 지식!

728x90
반응형