강의

멘토링

로드맵

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

Next님의 프로필 이미지
Next

작성한 질문수

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

프로미스와 제네릭

Promise 타입 정의하는 방법 질문드립니다.

해결된 질문

작성

·

105

0

프로미스와 제네릭 강의 12:30

Promise 부분에 타입 변수를 정의하는 방법과 함수의 반환값 타입을 우리가 직접 정의하는 방식에 대해 질문드립니다.

수업에서와 같이 new Promise를 직접 return하면 함수의 반환값 타입으로 정의해도 상관이 없지만 아래처럼 변수에 할당 후 반환하게 되면 타입을 제대로 읽지 못하는 문제가 있습니다.

new Promise()를 변수에 할당할 때 제네릭 타입을 명시하지 않으면 타입스크립트가 기본적으로 Promise<unknown>으로 타입을 추론하게 되어서 그런 것 같은데 그래도 함수의 반환값 타입을 직접 정의하는 방식을 더 추천하시는걸까요?

스크린샷 2024-12-04 오전 9.43.34.png

답변 1

1

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

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

우선 타입을 정의하는 방식은 팀마다, 개인마다 프로젝트 환경과 취향에 따라 달라질 수 있음을 알려드립니다. 견고하게 타입 오류를 방지할수 있다면 어떤 방식도 잘못되었다고 보기는 어렵습니다.

강의에서 반환값 타입을 정의하는 쪽으로 추천드린 이유는, 그렇게 작성하는게 가독성 측면에서 좋기 때문입니다. 혼자서 코드를 작성하는 경우가 아닌 여러명이서 협업하는 경우에는 특정 함수의 이름과 반환값 타입만 보고도 해당 함수를 호출해 사용할 수 있어야 합니다.

그런데 이 때 함수의 반환값 타입이 명시적으로 정의되어 있지 않으면 타입을 직접 유추하거나 또는 마우스 커서를 호버하여 타입이 어떻게 추론되는지 직접 확인해야 하는 추가적인 수고로움이 발생하게 됩니다 😢

이에 함수 내부에서 타입을 한번 더 정의해 주더라도 저는 개인적으로 함수 반환값의 타입을 명시적으로 정의하는게 좋다고 생각합니다 😃

Next님의 프로필 이미지
Next

작성한 질문수

질문하기