정적 타입(Statically Typed Language): 프로그램이 실행되기 전, 런타임 이전에 컴파일 시 타입 분석 진행 (예: JAVA, C++, TypeScript) 동적 타입(Dynamically Typed Language): 프로그램이 실행되는 런타임 시 타입 분석 진행 (예: Python, PHP, JavaScript)
프로그램을 실행하기 전 미리 에러 파악 가능
친절한 에러 메세지를 제공
객체지향적(인터페이스, 제네릭 등)
넓은 생태계
아래 코드는 자바스크립트로 작성되었다. 해당 코드는 두 가지 문제점을 가지고 있음에도 브라우저에서 실행이 가능하다. 어떤 에러일까?
같은 코드에 타입을 적용해서 타입스크립트로 적어보았다. 빨간 밑줄을 통해 에러가 어디서 나는지 확인이 가능한 것을 확인할 수 있다.
3. 타입스크립트는 어떻게 실행될까?
웹 브라우저는 자바스크립트 런타임 환경으로 자바스크립트만 이해한다.
따라서 타입스크립트 파일(.ts 또는 .tsx)로 작성한 뒤에 자바스크립트 파일(.js)로 변환하는 컴파일 과정을 필요로 한다.
일반적인 컴파일과 다른 점도 있기 때문에 컴파일 대신 transpile이라고 부르기도 한다.
tsconfig.json는 프로젝트를 컴파일할 때 필요한 루트 파일과 컴파일 옵션을 지정한다.