자바스크립트(javascript)와 타입스크립트(typescript)의 가장 핵심적인 차이는
type이 있느냐 없느냐이다.
자바스크립트는 선언할 때 자료형을 굳이 명시하지 않아도 된다.
하지만 타입스크립트는 변수 옆에 자료형(string, number ..등)을 명시해야만 한다.
이걸 바로 type이라고 한다.
타입스크립트의 장점
타입스크립트의 경우는 컴파일(compile)과정에서 에러가 발생한다.
즉, 프로그램이 돌기도 전에 코드를 작성하는 중에 에러를 출력한다.
하지만 자바스트립의 경우는 런타입(runtime)에서 에러가 발생한다.
즉, 프로그래밍이 잘 돌다가 브라우저에서 실행 시에 에러가 발생하며 죽는다.
간단한 코드의 경우에는 누가봐도 바로 찾아서 에러를 고칠 수 있지만
코드의 규모가 커지게 되면 이야기는 달라진다.
자바스크립트는 프로그램 잘돌다가 이유없이 죽는 경우가 많다.
하지만 typescript는 프로그램이 돌다가 죽는 불상사를 미리 예방할수 있다.
그 이유는 type을 명시함으로써 컴파일 단에서 미리 선언될 수 없는 변수를 차단하기 때문이다.
또한 자료형을 명시함으로서 어떤 데이터가 들어가고 return되는지 쉽게 알 수 있어 가독성이 좋다.
자바스크립트의 장점
자바스크립트는 변수를 자료형을 바꿔가면서 사용하는 게 가능하지만, 타입스크립트는 불가능하다.
또한 기본이 아닌 object등과 같은 복합 자료형일 때 타입스크립트는 선언해줘야 할 것이 매우 많다.
그래서 코드작성을 유연하게 하지 못할때가 정말 많고
자바스크립트보다 코드의 양이 훨씬 늘어나기도 한다.
타입스크립트는 코드작성에 더 많은 시간이 걸린다.
유연하지 못하다는 것은 곧 생산성과도 연결되어 자바스크립트가 생산성이 더 좋은 것이다.