Skip to content

Typescript

Lee Dogyeong edited this page Dec 20, 2020 · 2 revisions

Typescript vs Javascript

자바스크립트는 동적 타입 언어입니다. 그 말은 자바스크립트 변수는 여러가지 타입을 가질 수 있다는 뜻입니다. 이 점은 개발할 때 편리함을 제공할 수 있지만, 런타임 환경에서 쉽게 에러가 발생해 디버깅하는데 많은 리소스를 쓰게 하는 큰 단점이 있습니다.

자바스크립트 런타임에서 자주 볼 수 있는 에러
image

반면에 타입스크립트는 정적 타입 언어입니다. 자바스크립트에 타입을 부여해서 프로그램을 실행하기 전에 타입 체킹을 해서 에러를 잡아낼 수 있습니다. 원래는 타입스크립트를 자바스크립트로 컴파일하면서 타입체킹을 하지만 IDE의 도움을 받으면 따로 컴파일하지 않아도 실시간으로 타입체킹을 할 수 있습니다.

image


타입스크립트의 다양한 기능들

타입스크립트에는 많은 강력한 기능들이 있고, 특히 객체지향 프로그래밍을 할 때 강력합니다.

  • Generic, Type inheritance, Partial, Readonly와 같은 타입 관련 기능
  • Shorthand Initialization, protected, static, abstract 등의 클래스 관련 기능
  • Decorator

타입스크립트에 대한 인식

현재 개발자들의 타입스크립트에 대한 인식은 꽤 좋은 편인 것을 알 수 있습니다. 출처: State of Frontend 2020


타입스크립트로 개발해 본 후기

프론트엔드에서 타입스크립트+리액트로 개발을 했는데, 결과물을 확인하기 위해 페이지를 열었을 때 밥먹돗이 보이던 ... is not a function, ...is undefined 와 같은 에러들을 거의 본 적이 없는 것 같습니다. 그만큼 대부분의 런타임 에러들을 미리 잡아줬던 것 같습니다. 또한 IDE에서 자동완성이나 추천기능 지원이 굉장히 잘돼서 생산성도 좋았습니다.

하지만 익숙하지 않아서 타입을 설정하는 데 고생을 좀 했던 것 같고, 타입스크립트가 가진 장점들을 최대한 활용하지 못한 것 같아서 아쉽습니다. 차라리 백엔드에서도 타입스크립트+클래스를 사용해서 프로그래밍했으면 훨씬 더 효과가 좋았을 것 같습니다.

Clone this wiki locally