타입스크립트는 마이크로소프트에서 2012년 10월에 발표되어 개발, 유지하고 있는 오픈소스 프로그래밍 언어이다.
자바스크립트의 라이브러리 이자 또다른 독자적인 언어이기도 하며 자바스크립트 문법 그대로 이용 가능하다.
타입스크립트는 엄격한 문법을 지원하는것이 특징인데 자바스크립트와 비교해보자.
자바스크립트는 동적 타입 언어(Dynamic Type Language)이다. 이게 무슨말이냐면 타입이 어긋나도 자기가 알아서 판단해서 타입을 바꿔서 실행시켜준다. 예를들면

위의 계산을 console.log 해보면

이렇게 자바스크립트가 지레짐작하여 타입을 바꿔서 연산해버린다.
이는 개발속도 면에서 생산성 확대라는 장점이 있겠지만 프로젝트의 규모가 커지고 유지보수 할 일이 생겨 남이 짠 자바스크립트를 수정할 일이 생기면 골치아파진다. 의도치 않는 버그들이 생겨나고 실행하기 전까지 타입 관련 에러를 찾기도 어렵다.
하지만 타입스크립트라면 어떨까?
타입스크립트는 변수와 데이터의 형식을 전부 명확히 지정하기 때문에 위와 같은 단점이 보완된다.
추가로 컴파일 단계에서 에러를 잡아준다. 이게 무슨뜻이냐면 자바스크립트는 코드를 실행해서 콘솔창에서 직접 에러를 확인해야 하지만 타입스크립트는 코드 편집기 안에서 미리 에러를 띄워줘 경고를 해준다.
에러메시지도 더 정확해진다.
비유를 하자면
동네에서 성인남성 두명이서 고성방가를 하며 싸우기 시작하는데
자바스크립트와 타입스크립트가 경찰에 신고를 한다.
자바스크립트 : 이 동네가 시끄러운데요?
타입스크립트 : 지금 어느골목에서 성인남성 두명이 싸우려고해요. 일이 커질거같아요.
라고 볼 수 있다.
정리하면
타입스크립트는 정적 타입 언어이며 개발자의 실수를 줄이고, 유지보수를 더 쉽게 만들어준다. 특히 규모가 큰 프로젝트나 협업이 필요한 환경에서 안정성이 더 높아진다.
타입스크립트를 지원하는 웹 프론트엔드 중 인기가 많은건 React와 Vue라고 생각한다.
React는 타입스크립트와 궁합이 좋다고 알려져 둘의 조합이 인기있다.
Vue는 2버전에서 타입스크립트를 일부분 지원했지만 23년 12월에 2버전의 지원이 종료되었다. 3버전에서 타입스크립트의 지원이 강화되어 사용되고 있지만 React만큼 강력하진 않다.
프로젝트의 규모가 커져 복잡도가 증가할 경우 React의 컴포넌트 타입을 지정해 복잡한 상태관리를 통해 타입스크립트가 진가를 발휘하기 때문이다.