- js : 인터프리터 언어 : 웹 브라우저 혹은 런타임 환경에서 코드를 한 줄 한 줄 읽어내려가 해석하도록 만들어진 언어
- ts : 컴파일 언어 : 컴파일링(컴퓨터가 해석할 수 있는 언어로 변환하는 작업) 과정을 거쳐서 실행되어지는 언어다.
타입스크립트를 사용하는 이유
1. 버그 예방
- js(인터프리터 언어)
- 자바스크립트는 선언할 때 타입을 지정해주지 않기 때문에 동작하면서 언제 나도 모르게 형변환이 되어 있을 수도 있고, 그런 부분으로 인해 예기치 않은 버그가 발생할 수도 있다.
- 자바스크립트는 컴파일 과정이 없기 때문에 에러를 출력하지 않고 실제 동작하는 과정에서 오류를 잡아낼 수 밖에 없다.
- ts(컴파일 언어)
- 컴파일단계에서 타입관련 에러는 막을 수 있다 =>디버깅 시간 단축
2. 더 나은 개발자 경험과 코드 퀄리티 향상
- 변수의 이름뿐만 아니라 그 데이터의 "type"까지 알 수 있게 해준다.(직관적, 코드 가독성 향상)
- 오브젝트 안의 속성값을 하나하나 기억할 필요없이 IDE가 자동으로 리스트업
- 위의 이유들로 협업, 인수인계에 도움이 된다.
3. 크로스브라우징(브라우저 호환성) 문제 해결
- TypeScript는 ES5의 Superset이므로 기존의 자바스크립트(ES5) 문법을 그대로 사용할 수 있다.
- ES6의 새로운 기능들을 사용하기 위해 Babel과 같은 별도 트랜스파일러(Transpiler)를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진(현재의 브라우저 또는 Node.js)에서 실행할 수 있다. (타입스크립트는 컴파일 과정에서 ES6+ 문법들을 ES5(또는 ES3)로 바꿔주기 때문에 Babel의 도움 없이 크로스브라우징 문제를 해결할 수 있다)
단점
- 타입스크립트는 컴파일러를 통해 자바스크립트로 컴파일을 해주는 시간이 들기때문에 자바스크립트만 사용했을 때보다 속도에서 차이가 날 수 밖에 없다.
- 매번 타입을 따로 결정해주어야해 번거롭기도 하고 작성해야하는 코드의 양이 많아질 수 있다.