image.png

자바스크립트는 초기에는 웹브라우저상에서 간단한 조작을 위해 개발되었다.

그다지 큰 개발에 사용되는 언어가 아니였기 때문에 엄격할 필요가 없었고, 유연하게 설계되었다.

안전성을 포기하는 대신 유연한문법으로 개발자가 쉽고 빠르게 습득하여 개발할 수 있는 장점이 있었으나,

node.js의 등장으로 웹브라우저를 벗어나 다양한 분야의 개발에서 사용되기 시작하였다.

개발의 규모가 커질수록 자바스크립트의 기존 장점은 유지한 채, 안정성이 확보된 언어가 필요해졌고,

그런 이유에서 타입스크립트가 등장하였다.

타입시스템

image.png

정적 타입시스템

C, Javs와 같이 코드 실행 이전에 모든 변수의 타입을 고정적으로 결정한다.

동적 타입시스템

코드를 실행하고 나서 그때마다 유동적으로 변수의 타입을 결정한다.

점진적 타입시스템(Gradual type system)

타입스크립트는 정적타입시스템 + 동적타입시스템 을 혼합한것 같은 점진적 타입시스템을 사용한다.

let a:number = 1; //타입을 직접지정
let a = 1 // 변수a의 초기값이 숫자니 숫자타입으로 추론

동작원리

대부분의 언어는 컴파일 후 바이트코드가 만들어지지만 타입스크립트는 컴파일 후 자바스크립트 코드가 생성된다.

image.png

이렇게 컴파일을 통해 생성된 자바스크립트 코드는 안정성을 확보한 상태라고 볼 수 있다.