컴퓨터에서 어떠한 값을 사용하려고 한다면 컴퓨터에게 값을 기억시킬 필요가 있다. 이때 하는 행동은 변수에 값을 담는 것
예를 들어,
나는 a라는 변수에 숫자 5를 담으려고 한다. 이 과정을 변수의 선언과 할당이라고 한다.
...
이러한 과정에서 a의 자료형은 number이며 숫자 외에는 들어갈 수 없어야 한다.
자바스크립트에서는 이러한 과정을 런타임(실행) 이후 판단하기 때문에 자료형은 존재하나 어떠한 값이든 담을 수 있는 것이다.
자료형이 있으나 실행 이후에 정해주는 것이다
자바스크립트는 정적 타입 언어(선언 시 판단)와 달리 코드를 실행했을 때 타입을 확인하므로 개발자의 의도와 다르게 실행될 수 있는 문제점이 있다. 이를 엣지 케이스라고 한다.
이러한 동적 언어의 문제점을 해결하기 위해 탄생한 언어가 바로 타입스크립트이다. 타입스크립트는 자바스크림트를 컴파일하는 컴파일 언어로 정적 타입 언어다. 컴파일시 타입을 확인하고 에러를 검출하므로 자바스크립트의 문제점인 엣지 케이스를 해결해줄 수 있다. ex) let a:number = 5; a = "string"; // error