2012년 마이크로소프트 개발자이자 C#의 창시자인 앤더스 하일스버그가 만듦
오픈소스로 공개되어 있음
현재 굉장히 인기가 많음
공신력 있는 기관(STATE OF JS)에서 100명중 89명은 ts를 사용중이라고 밝힘
타입스크립트는 자바스크립트의 확장판임
자바스크립트는 원래 아주 간단한 상호작용 정도를 처리하기 위해 개발되었음
Node.js가 등장하면서 웹에서만 실행되던 자바스크립트를 어떤 프로그램에서든 이용할 수 있도록 해줌 → 자바스크립트의 한계가 사라짐
Node.js
- Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
- Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다.
- Node.js는 서버사이트 스크립트 언어가 아니다. 프로그램(환경)이다.
- Node.js는 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.
출처: 블로그
자바스크립트의 활용도가 높아질수록 자바스크립트의 유연함이 버그발생 가능성을 높임
이런 단점을 극복하기 위해 안정성 확보 하기 위한 타입이라는 안전장치를 추가함
(요약) 타입스크립트는 자바스크립트의 한계를 극복하기 위해 등장
모든프로그래밍 언어는 타입 시스템을 가지고 있다.
값들을 어떤 기준으로 묶어 타입을 규정할 것인지 결정
코드의 타입을 언제 검사할지 결정
어떻게 타입을 검사할지 결정
정적타입시스템 | 동적타입시스템 |
---|---|
코드 실행 이전 모든 변수의 타입을 고정적으로 결정함 | 코드를 실행하고 나서 그때 그때 마다 유동적으로 변수의 타입을 결정함 |
엄격하고 고정적인 시스템 | 자유롭고 유연한 시스템 |
C, Java | Python, JavaScript |
변수의 타입들을 코드가 실행되는 도중에 결정함 → 변수의 타입을 우리가 직접 정의하지 않음
변수의 타입이 하나로만 고정되지 않음 → 아무 타입의 값이나 자유롭게 담을 수 있음
이로 인해 다음과 같은 에러가 발생함 (숫자타입은 다음 함수에 적용될 수 없음) (동작은 일어남)
복잡한 코드에서 위와 같은 일이 발생한다면 그 원인을 곧바로 찾기 어려움
에러가 날 코드라면 실행이 되지 않도록 방지하여야 함
강의 출처: 한 입 크기로 잘라먹는 타입스크립트