자바스크립트는 동적 타입의 언어로 런타임에서 오류를 발견하고,
타입스크립트는 정적 타입의 컴파일 언어로 코드 작성 단계에서 타입을 체크해 오류를 확인할 수 있고, 미리 타입을 결정하기 때문에 실행속도가 빠르다.
하지만 코드 작성 시 매번 타입을 결정해야 하기 때문에 번거롭고 코드량이 증가하며 컴파일 시간이 오래 걸린다는 단점이 있다.
자바스크립트 기본 문법에 타입스크립트 문법을 추가한 언어이다.
따라서 유효한 자바스크립트로 작성한 코드는 확장자를 .js 에서 .ts 로 변경하고, 타입스크립트로 컴파일해 변환할 수 있다.
ES6을 포함하여 class, instance, 상속, 모듈 등과 같은 객체지향 프로그래밍 패턴을 제공한다.
타입스크립트는 코드에 목적을 명시하고, 목적에 맞지 않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거한다.
또한, 코드 자동완성이나 실행 전 피드백을 제공하여 작업과 동시에 디버깅이 가능해 생산성을 높일 수 있다.
타입스크립트는 자바스크립트와 100% 호환된다.
따라서 프론트엔드 또는 백엔드 어디든 자바스크립트를 사용할 수 있는 곳이라면 타입스크립트도 쓸 수 있다.
타입스크립트는 앱과 웹을 구현하는 자바스크립트와 동일한 용도로 사용가능하며 서버 단에서 개발이 이루어지는 복잡한 대형 프로젝트에서도 빛을 발한다.
타입스크립트는 그리 오래되지 않은 언어임에도 강력한 생태계를 가지고 있다.
대부분의 라이브러리들이 타입스크립트를 지원하며 마이크로소프트의 비주얼 스튜디오 코드를 비롯해 각종 에디터가 타입스크립트 관련 기능과 플러그인을 지원한다.
기존의 자바스크립트 프로젝트를 타입스크립트로 전환하는데 부담이 있다면, 추가 기능이나 특정 기능에만 타입스크립트를 도입함으로써 프로젝트를 점진적으로 전환할 수 있다.
자바스크립트에 주석을 추가하는 것에서부터 시작해 시간이 지남에 따라 코드베이스가 완전히 바뀌도록 준비 시간을 가질 수 있다.
프로젝트의 규모가 크고 복잡할 수록, 유지보수가 중요한 장기 프로젝트일 수록 타입스크립트의 이점이 부각된다.
코드 작성시 매번 타입을 결정해야해서 번거롭고 코드량이 증가하며 컴파일 시간이 오래걸린다는 단점이 있다.
장점은 자바스크립트와 100% 호환되며, 코드에 목적을 명시하고 목적에 맞지않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거하고, 작업과 동시에 디버깅이 가능해 생산성을 높일 수 있다는 점이다.