타입스크립트는 자바스크립트의 superset이라고들 말한다.
자바스크립트에 타입을 부여한 언어로, 자바스크립트를 기반으로한 확장된 언어이다.
자바스크립트만으로도 충분히 구현가능한데 굳이 타입스크립트를 왜 써야하나 싶지만 타입스크립트를 사용하면 에러를 사전에 방지할 수 있고, 유지보수가 쉬운 코드를 짤 수 있다.
데이터 타입을 지정할 수 있기 때문에 코드 실행 전 컴파일 에러 메세지가 출력되면서 다른 데이터 타입으로 인해 발생할 수 있는 에러를 미리 캐치한다.
add 함수의 인자로 정수만 받고 싶어 아래와 같이 함수를 짰다고 가정해보자. js는 인자로 문자열을 넣는다면 별 다른 에러 없이 '35'
를 출력하겠지만 ts는 에러를 출력한다.
타입스크립트는 타입을 명확히 지정해줌으로써 의도한 결과를 얻을 수 있다는 장점이 있다.
//자바스크립트
function add(a, b) {
return a+b
}
console.log(add('3','5')) //'35'
//타입스크립트
function add(a: number, b:number) {
return a + b;
}
console.log(add('3','5')) //Error: '3'은 number에 할당될 수 없습니다.
자바스크립트로 실행되는 브라우저가 타입스크립트 코드를 이해하지 못하기 때문에 타입스크립트는 자바스크립트 환경에서 실행할 수 없다.
브라우저에서 실행되려면 타입스크립트 파일을 자바스크립트 파일로 변환해주는 컴파일을 거쳐야한다.
타입스크립트는 프로그래밍 언어임과 동시에 타입스크립트를 자바스크립트로 변환시켜주는 컴파일러이기도 하다.
컴파일이란? 어떤 언어의 코드를 다른 코드로 바꿔주는 변환 과정이다.
컴파일 언어는 프로그래머가 작성한 코드 전체를 기계어로 변역한 후 링킹 작업을 거쳐 코드를 실행한다.
인터프리터 언어는 프로그래머가 작성한 코드를 한줄 단위로 번역하고 동시에 명령어를 실행하는 언어이다.