자바스크립트에서와같이 타입스크립트를 작성하면 다음과 같은 오류가 뜨는 것을 확인할 수 있다.

이미 문자열 타입을 할당했던 변수 something에 넘버 타입을 할당하려 하였기 때문에 오류가 난 것이다. 이처럼 타입스크립트는 변수에 한 번 타입이 설정되면 다른 타입이 오는 것을 원천적으로 방지한다. 변수는 선언 시 기본적으로 any 타입으로 설정되는 것을 볼 수 있다.

이러한 변수는 다음과 같이 변수 옆에 : type을 추가하는 방식으로 선언과 동시에 특정 타입으로 설정할 수 있다.

이러한 타입 설정을 Type annotation이라고 부른다.
Type annotation은 다음과 같이 함수에 올 수 있는 변수의 타입 또한 미리 설정할 수 있다.

그렇다면 이렇게 설정할 수 있는 타입에는 어떠한 종류가 있을까?
기본적으로 타입스크립트는 정적 타입(static type)이다. 이러한 방식은 개발 과정에서 타입을 명시하며, 자바스크립트의 동적 타입(dynamic type)이 런타임에서 타입을 체크하는 것과 달리 개발 중간에 타입을 체크한다.
타입스크립트의 기본 제공 타입은 자바스크립트의 타입+a 라고 볼 수 있다. 타입스크립트에서 사용 가능한 ES6 표준 기본 자료형은 다음과 같다.
이러한 기본 타입은 표기시 소문자만을 이용해야 한다. 추가로 다음의 참조타입 또한 명시할 수 있다.

타입스크립트는 또한 안정적인 프로그래밍을 돕기 위해 기존 자바스크립트에 없는 다음의 타입을 추가로 제공한다.
변수: [타입, 타입]의 형태로 할 수 있으며, 지정된 타입의 순서를 틀리거나 지정하지 않은 인덱스에 할당하려 하면 에러를 발생시킨다.
위와 같이 enum을 통해 선언하며, 각 아이템에 값을 할당할 수 있다. 값이 할당되지 않으면 이전 값+1을 자동으로 할당한다.만약 기존에 설정된 타입과 다른 타입을 설정하고싶다면 as 키워드나 <>를 이용하여 타입 변환을 할 수 있다.
코드 추가 예정
참고
TS 공식문서 - Everyday Types
TypeScript Guidebook by 이듬(E.UID)
poiemaweb.com