타입스크립트의 가장 독특한 특징은 static typing이라고 불리는 정적 타이핑기능을
자바스크립트언어에 제공하는 것이다.
타입을 선언하고 선언된 파일에 맞는 값만이 할당 또는 반환되어야 된다는 뜻이다.
let a = 5;
a= "hello" // error Type "hello" is not assignable to type "number".
a = 10;
위의 타입스크립트 코드에서 let a 의 값을 5 할당한 후 hello라는 문자열을 재할당 하게 되면
에러를 발생한다.
에러를 보면 재할당하려는 변수값이 숫자가 아니기 때문에 변수에 할당될 수 없다고 한다.
다시 숫자열 10으로 값을 할당하면 에러메세지는 사라진다.
이것은 타입스크립트의 타입추론 때문에 발생하는 에러이다.
타입스크립트에서는 타입표기가 없는경우 타입 정보를 제공하기 위해서 타입을 추론한다.
let a
의 할당 값이 숫자 5 이기 때문에 자동으로 변수 a의 타입을 Number로 결정되었다.
타입스크립트에서는 타입 표기가 없는 경우 코드를 읽고 분석하여 타입을 유추해낼수 있다.
정리
정적타입언어는 원래 모든 변수에 정확히 타입을 정의하지 않으면 에러가 나지만, 타입스크립트에서는 타입을 표기하지 않아도 타입스크립트 컴파일러가 변수에 할당된 갑을 보고 타입을 추측한다.