자바스크립트는 너무나도 좋은 언어이지만 개발자들을 너무 생각해준 나머지 말도 안되는 코드까지도 실행을 시켜버린다.
예를 들어 배열 + boolean을 하면 다른 언어에서는 당연하게 오류를 띄우겠지만 자바스크립트는 당연하게(?) 실행을 시키고 string으로 값을 반환해준다.
[1, 2, 3, 4] + false
//return 값
'1,2,3,4false'
간단한 예시이지만 이처럼 말도안되는 코드도 실행해주기때문에 프로젝트가 커진다면 예상치못한 오류들이 발생할 수 있다. 이에 타입을 지정해주고 파라미터의 타입을 지정해주는등 오류를 방지하기위해 생겨난것이 타입스크립트이다.
보통의 컴파일러들은 코드를 어셈블리 코드나 바이트 코드로 컴파일해주는데 타입스크립트는 작성한 코드를 자바스크립트 코드로 컴파일한다. 이는 브라우저가 타입스크립트가 아닌 자바스크립트를 읽을 수 있기 때문이다. 또한 타입스크립트는 코드가 실행되기 전에 먼저 오류를 지적해준다.
즉 타입스크립트 코드가 오류가 없다면 자바스크립트 코드로 컴파일이 되므로 오류가 있다면 컴파일이 안되어 코드가 실행이 되지 않는다.