TypeScript 타입 어디까지 지정해줘야 할까

2022. 8. 13. 19:34프로그래밍 언어/JavaScript

원티드 프리온보딩 프론트엔드 챌린지 (8월)에 참여하면서 프로젝트에 TypeScript를 적용했다.

type 지정을 해주니 코드량이 점점 늘어났고 타입 지정을 도대체 어디까지 해야하는지 의문이 들었었다..

 

 

 

before)

원래 내가 작성했던 코드인데 signin, signup 메소드 안에 response를 보면

const response: AxiosResponse = axios.post<AuthResonse>();

이렇게 좌측에도 response 변수의 type 지정, 우측에 post 에도 Generic에 type 지정을 해줬었다.

이것도 처음에는 어떻게 썼었냐면...

const response: AxiosResponse<AuthResposne> = axios.post<AuthResonse>();

이렇게 AxiosResponse 안에 Generic type까지 지정해줬었다 ㅋㅋㅋ

 

 

 

after)

그런데 굳이 장황하게 쓸 필요가 없었다.

변수 type 지정 없이 위와같이 작성해도 TypeScript가 알아서 type을 추론한다.

 

 

227 Line 참고

왜냐하면 227 Line 라인을 천천히 따라가보면...

Axios.post는 <T>자리에 받은 데이터 타입을 받아서

RAxiosResponse<T>를 만들고

Promise<R>Promise<AxiosResponse<T>>를 리턴해주기 때문이다.

 

나는 이미 Axios의 Post에 이미 Generic type으로 AuthResponse를 지정해주었고

결과적으로 Promise<AxiosResponse<AuthResponse>>가 반환되면

async/awaitAxiosResponse<AuthResponse>를 받아올 수 있기 때문에

type을 굳이 지정해줄 필요가 없다..!

 

 

TypeScript Strict 모드로 작성하면서 빨간 밑줄이 안나오는 정도면 충분하다는게 결론이다!

 

 

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

이벤트 전달 방식  (0) 2022.09.26
클로저(Closure)  (0) 2022.09.22
호이스팅(Hoisting)  (0) 2022.09.22
스코프(Scope)  (0) 2022.09.22
location.href와 location.replace의 차이  (0) 2021.01.18