
타입스크립트는 C나 Java처럼 정적 타이핑 언어이기 때문에 변수나 함수의 타입이 정해지면 반드시 그 타입을 지켜서 사용해야 한다.
타입스크립트에서 변수에 별도의 타입을 지정해주지 않을 시, 타입스크립트 컴파일러가 타입을 추론해서 지정한다.
아래 예시처럼 size라는 변수에 별도의 타입을 지정해주지 않으면 타입스크립트 컴파일러가 할당된 값에 따라 변수 타입을 number로 할당한다.
number 타입으로 할당된 size 변수에 string 타입 값으로 재할당하려고 하면 오류가 발생한다.
let size = 100;
size = 'L'; // Type 'string' is not assignable to type 'number'. ts(2322)
IDE로 타입스크립트를 사용한다면 타입 오류를 명시해주기 때문에 편리하다.

단, 변수를 초기화하지 않고 선언만 하면 any 타입이 지정된다.

타입 추론 대신 타입을 확실히 지정해주는 방법은 다음과 같다.
let size: number = 100;
변수명 뒤에 콜론(:)과 타입명을 지정하여, 타입을 추론하여 사용하는 것 대신 명시하여 타입 선언을 할 수 있다.
곧바로 값을 할당하지 않을 때에는 타입만 작성할 수도 있다.
let size: number;
size = 100;
다음의 타입스크립트 코드를 tsc를 통해 build하여 자바스크립트 코드로 만들면 다음과 같은 결과가 나타난다.
// main.ts
let size: number = 100;
size = 105;
// bash
npm run build
// main.js
"use strict"
let size = 100;
size = 105;
자바스크립트 코드에서 타입 부분만 쏙 빠지고, "use strict"라는 키워드가 추가된 것을 볼 수 있다.
여기서 나타나는 타입스크립트의 특징은 두 가지이다.
"use strict" 키워드는 엄격한 자바스크립트 모드를 사용하겠다는 뜻으로, tsconfig.json 파일에서 활성화되어 있기 때문에 지정되었다. "use strict" 외에 다른 속성들도 활성화하여 사용할 수 있다.