인프런 커뮤니티 질문&답변

박찬영님의 프로필 이미지

작성한 질문수

한 입 크기로 잘라먹는 Next.js(15+)

7.7) 리뷰 삭제 기능 구현하기

deleteReviewAction 에서 _: 타입 질문

해결된 질문

24.10.12 22:40 작성

·

30

0

안녕하세요!

강의를 듣다가 deleteReviewAction 에서 _: any 타입에 질문이 있습니다.

타입스크립트를 배울 때 되도록이면 any 는 쓰지 말아야 한다고 알고 있는데 만약 팀원끼리 any 를 쓰지 말자고 약속을 한다면 any 말고 unknown, never 라는 타입을 써야 하는지 궁금합니다.

답변 2

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

2024. 10. 13. 12:48

안녕하세요 이정환입니다.

만약 any를 절대 사용하지말자는 컨벤션이 정해졌을 경우 never 보다는 unknown이 적절할 듯 합니다.

never 타입의 변수에는 아무런 타입의 값도 저장될 수 없기 때문에 _ 매개변수를 never 타입으로 정의하면 액션 호출 자체에 문제가 발생할거에요

그러므로 모든 타입의 값을 다 저장할 수 있는 unknown 타입을 활용하시는게 좋을 것 같습니다. 그리고 그게 any보다 훨씬 안전하게 활용할 수 있기도 하겠네요 😃

박찬영님의 프로필 이미지
박찬영
질문자

2024. 10. 13. 13:39

정말 감사합니다!!

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 12. 22:45

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

박찬영님께서 deleteReviewAction 함수에서 any 타입을 사용하지 않고 다른 대체 타입으로 unknown 또는 never를 사용할지에 대한 질문을 주셨네요.

타입스크립트에서 any 타입은 모든 타입을 허용하는 것으로, 사실상 타입 체크를 비활성화합니다. 따라서 타입 안전성을 보장하기 어렵다는 단점이 있습니다. 팀에서 any 사용을 지양하기로 했다면, 다음과 같은 대안 옵션을 고려할 수 있습니다:

  1. unknown: unknownany와 비슷하지만, 더 엄격합니다. unknown 타입으로 지정된 값은 구체적인 타입으로 확정되기 전까지 구체적인 작업을 수행할 수 없습니다. 이는 타입 안전성을 유지하면서도 유연하게 타입을 지정할 수 있는 방법입니다.

  2. never: never 타입은 절대 발생하지 않는 타입을 나타냅니다. 함수가 결코 반환되지 않거나, 예외를 던지는 경우에 사용합니다. 일반적인 함수의 매개변수 타입으로는 사용되지 않는 경우가 많습니다.

  3. 적절한 타입 지정: 사용 중인 변수나 파라미터의 실질적 타입을 미리 예측하여 정확한 타입을 지정하는 것이 가장 좋은 방법입니다. 이를 통해 타입 안정성을 유지하면서 정확한 코드 작성을 할 수 있습니다.

궁극적으로 any 사용을 최소화하려면 가능한 한 구체적인 타입을 사용하고, 타입 체킹을 강화할 수 있는 방법으로 unknown을 활용하는 것도 좋은 방법입니다. 팀에서 공간에 따라 any 대신 사용할 타입을 규정하고 코드 스타일을 맞추면 코드의 일관성과 안정성을 높일 수 있습니다.

박찬영님께서 질문하신 내용과 관련된 유사한 타입스크립트 콘텐츠도 있으니, 강의와 관련된 기존 Q&A들도 확인해 보시면 좋을 것 같습니다.

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