inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Service로 모든 로직 옮기기

PUT 요청 시 @Body()에 ?를 붙이면 서비스 함수 인자도 optional이어야 하나요?

91

ssavengers

작성한 질문수 8

0

코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다!

[코드팩토리 디스코드]
https://bit.ly/3HzRzUM

 

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

강사님, PUT 요청에서 컨트롤러에서는 @Body()를 optional (?)로 받았는데,
서비스 함수에서는 인자를 필수(string)로 선언하면 TypeScript 에러가 납니다.

이럴 땐 서비스 함수의 author, title, content를 string? 또는 string | undefined로 바꿔줘야 하는 게 맞을까요?

javascript typescript rest-api nestjs backend

답변 2

0

코드팩토리

안녕하세요!

Body 전체를 optional 로 받았다는 뜻인가요?

프로퍼티를 optional 로 받았다는 뜻인가요?

어떤 이유에서든 nullable 한 값이라면 TS에서 에러를 내지 않더라도 당연히 null이었을 경우를 처리 해주는게 맞습니다. null이 들어왔을때 에러를 던지지 않는게 정상이니 null 처리를 요구하는 상황이 이상한 상황이 아니라 오히려 고마운 상황이라 생각하셔야 할 것 같습니다.

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. ssavengers님,

TypeScript에서는 인자나 속성을 optional로 지정하면 해당 부분이 undefined를 가질 수 있음을 의미합니다. 따라서 @Body()?를 붙여 optional로 받는 경우, 서비스 함수에서도 이를 반영하여 optional 타입으로 선언해야 합니다.

따라서 서비스 함수의 인자를 string? 또는 string | undefined로 바꿔주어 타입 불일치를 해결할 수 있습니다. 이렇게 하면 undefined가 될 수 있는 값을 필수로 기대하지 않기 때문에 TypeScript 에러가 발생하지 않게 됩니다.

아래와 같은 자료를 참고하시면 더 도움이 되실 거예요:

아시다시피 TypeScript는 타입 안전성을 강조하는 언어로, 올바른 타입 지정은 코드의 안정성을 높이는 데 아주 중요합니다. 꼭 변경하셔서 에러를 해결하시기 바랍니다.

저는 질문자님의 이해를 돕고자 코드팩토리님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 코드팩토리님께서 답변해 주실 것입니다.

cascade 질문

0

39

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

46

1

process.env port key 에러

0

46

1

추상화

0

49

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

94

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

56

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

69

1

app.controller app.service 는 지워도되나요?

0

69

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

78

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

66

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

102

2

socket connect 오류

0

96

2

강의를 들으면서 궁금한 점

0

97

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

98

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

347

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

76

2

User 데코레이터 버그 수정 전달드립니다.

0

67

1

git 주소 부탁드립니다.

0

112

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

84

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

146

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2