본문 바로가기

Business/Product (Dev+Design)

타입스크립트 꼭 도입해야할까?(Typescript)

우리 프로덕트는 React와 JSX로 작성하고 있었다.

이후 동료의 의견으로 타입스크립트를 도입하게 되었다.

하지만, 최근들어 내가 개발하는 시간이 줄어들다 보니, 타입스크립에 적응하는것이 오버헤드가 생기면서 타입스크립트를 배우는일은 자꾸 딜레이됐다. (+부담)

 

시간이 갈수록, 미워해지는 마음이 커지기 전에, 타입스크립트에 대해 알아보기로 했다.

우선 내 의견은 이렇다. 세상사람들 다 쓴다고, 쓸 필요는 없다. 지금 이시간에도 리액트와 비슷하지만 svelte보다 가볍고 빠른  solid.js 같이 새로운 기술은 계속 나오고 있기 때문이다. 기존에 종교처럼 기술을 믿는다면,  어느순간에 갑작스럽게 자신이 개발을 배워왔던것인지, 프레임워크 사용법을 배워왔는지 고민하기 마련이다. 

난 개발자는 항상 반응할수있는 실력을 평소에도 쌓아야하고, 그런 문화속에 있어야한다고 생각한다.

남들다 한다고 따라가면 안된다.

하지만, 리액트처럼 세상의 메인스트림일수도 있으니, TypeScript 를 내 나름대로 공부해 판단해보겠다.

 

타입이 있으면 좋다는것은 알고 있다.  왜 그런지는 내가 좋아하는 인용글로 대체하겠다.

“The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.”
– Seymour Cray

그래도 나는 타입스크립트가 별로다. 왜냐하면 기존의 코드가 tsx로 변경하면, 결국에 any 떡칠하게 된다. 그리고 타입스크립트 사용법을 이해하고 전체 프로젝트 재 작업하는 것도 오래걸리긱 때문이다.

 

타입스크립트의 장점은  타입 검사+AutoComplete  인데 AutoComplete는 통신쪽에서 데이터 받아서 처리할때, 편하기 하겠지만 내가 볼때 IDE 자동완성을 위해 타입스크립트를 도입한다는 것은 정말 사소한 부분이다.

팀원들이 적응에 어려움을 격고 따로 학습하는 리소스와 그에따른 전체적인 생산성 하락에 비해, 오토컴플릿은 그냥 필연적것이 아니라 부가적인것이 내 생각이란거다.

 

그러던 중 아래글을 발견했다.

처음이라 잘 모르겠다면 무수히 많은 에러를 메꾸기 위해서 any를 남발하지 말고... 억지로 Type을 붙이지 말고 그냥 strict와 lint를 잠시 꺼두길 바랍니다.

나의 기존의 개발경험을 무너뜨리지 말고 그냥 필요할때 조금씩 자동완성도구 같이 꺼내어 쓰기를 바랍니다. https://velog.io/@teo/typescript

위의 글을 읽고오니, 드디어 정리가 되었다. strict와 lint를 꺼놔야겠다.

강제성을 없애고, 거부감없이 서서히 문화를 도입시도를 해보는거다.

그러면 진입장벽을 줄일수 있을 것 같다.

 

 

 

Update

https://github.com/reach/router/issues/414

 

Typescript set type for location.state? · Issue #414 · reach/router

I Have a question How do you specify the type of location.state in typescript? Trying to access location.state.x gives an error in typescript because location.state is of type {}. Thanks

github.com

이런거 때문에 짜증 .. ㅡㅡ 

 

 

Update 22.6.11

interface LocationState {
  pathname: string;
  index: number;
}

const location = useLocation<LocationState>();

useEffect(() => {
    const { index } = location.state;
    setNavIndex(index);
}, []);

NavLink와 함께 상태를 넘겼는데, 빼올려니깐 타입을 아예만들어서 위와같이 써야한다.

이게 머하는짓인지 .. 타입스크립트 좋은거.. 맞지..?