inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

프로미스와 제네릭

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

해결된 질문

134

Next

작성한 질문수 64

0

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

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

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

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

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

typescript

답변 1

1

이정환 Winterlood

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

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

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

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

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

제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.

0

7

1

적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>

0

29

2

outDir 옵션 추가 후 컴파일 오류 질문

0

64

1

호출 시그니처 질문

0

66

2

서로소 유니언 타입이 discriminated union과 동의어 인가요?

0

75

2

조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제

0

67

1

할인쿠폰 관련하여

0

159

2

프론트엔드에서의 인터페이스활용

0

94

2

안녕하세요 이정환님!

0

92

1

Node.js 설치에 관한 질문입니다.

0

79

2

함수 타입 호출 시그니처

0

58

1

35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?

0

64

2

인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?

0

118

4

마우스 호버 시 정보

0

92

2

vite으로 리액트 빌드하기를 업데이트해주세요.

1

89

2

타입가드를 만들어 사용하는 이유가 궁금합니다.

0

83

2

섹션 12가 너무 어려운데... 정상이겠죠..?

0

137

2

선생님.. 알고리즘도 강의해주시면안되나요

0

100

2

선생님은 어떻게 이런걸 아세요?

0

129

1

type: module

0

97

2

7:17초 업캐스팅 질문이있습니다!

0

76

1

슈퍼타입질문

1

63

2

프로젝트 설치

0

104

2

enum은 비원시 타입이면서 열거형 타입이 되는건가요?

0

69

2