JS에 추가적인 문법을 더한 것이 TS 이다.
추가적인 문법이란 타입을 지정하는 문법이라고 볼 수 있다.
JS는 컴파일 언어가 아닌 인터프리터 언어이기 때문에
실행 전에는 오류를 미리 검사하지 않는다.
실행하면서 오류가 발생하는 런타임 오류가 발생하기 때문에 사전에 에러를 해결하지 못하면
배포 중 사용 시 에러가 나타날 수도 있기에 조심해야한다.
에러 중에서도 타입 에러가 자주 발생 할 수 있는데
그 이유는 JS가 동적 타이핑 언어이기 때문이다.
변수의 자료형을 자유롭게 변경이 가능하여 개발할때는 편하게 코드를 작성할 수 있지만
타입관련 실수가 잦을 수 있고 실수가 발생했을 때 오류를 발견하기 어렵다.
타입에러에 관련하여 문제를 해결하기 위해 나온 언어가 TS이다.
1. 변수에 정적 타이핑을 지원
2. 배포하기 전에 타입 체크
TS를 컴파일하여 JS를 만들고 JS를 실행한다.
TS는 실제 프로젝트를 실행할 때는 사용하지 않는다.
그 이유는 브라우저 혹은 node.js는 TS를 읽지 못하고 JS를 읽을 수 있기 때문이다.
타입을 명확하게 작성하기 위해 TS를 이용하고 컴파일하여 JS를 생성하는데
웹 서비스 상에서는 '컴파일'을 '트랜스파일'이라고 한다.
트랜스파일을 진행하면서 타입을 체크하여 에러가 있을 시 알려준다.
트랜스 파일을 진행하는 프로그램을 TSC(타입스크립트 컴파일러)라고 한다.
트랜스 파일 진행 시 JS의 어떤 버전으로 바꿀지는
tsconfig.json파일에서 JS버전을 지정할 수 있다.
정리하면 TS - tsc -> JS - node -> 프로젝트 실행