JaveScript + 타입 체크 = TypeScript
TypeScript(이하 TS)는 자바스크립트 대체 언어 중 하나로, 자바스크립트(ES5)의 상위 확장 언어이다.
즉, TS 실행 환경에 JS를 코딩하면 100% 동작한다.
그러나 JS 실행 환경에서 TS를 코딩하면 작동하지 않는다.
JS의 변수는 내용물을 담기는 편하지만 그 내용물이 무엇인지 알 수 없어 매번 확인해야 하는 종이컵과 같다.
이처럼 변수의 데이터 타입을 명확하게 알기 어려우면 타입의 안정성도 낮아진다.
TS는 페트병과 같다. 내용물이 명확히 표시되어 있고, 봉인되어 불순물이 없음을 보장한다.
이처럼 TS는 변수의 데이터 타입을 명확히 지정해주어 안정성을 높여준다.
JS의 변수에는 본래 어떤 데이터 타입의 값이든 할당될 수 있음.
그런데 만일 누가 특정 변수의 값에 잘못된 타입의 값을 할당하더라도,
JS는 이런 문제를 사전에 막아쥐 못함.
반면, TS는 변수 선언 시 데이터 타입을 지정함.
이렇게 하면, TS를 JS로 컴파일 할 때 데이터 타입에 다른 값이 할당되려 하면 error를 발생시킴.
이를 통해 사전에 버그를 잡을 수 있음.
TS는 타입 추론 기능을 통해 변수의 타입을 자동으로 판단함.
명시적으로 타입 지정을 하지 않아도,
TS 컴파이러가 초기에 할당된 값을 바탕으로 변수 타입을 추론함.
그렇더라도, 타입 추론이 모호한 경우나 복잡한 로직에서는 명시적으로 타입을 지정해주는 것이 더 좋음.
출처: 생활코딩 (https://opentutorials.org/course/5080/32297)