타입스크립트란 자바스크립트를 베이스로하는 언어로, 자바스크립트를 감싸는 언어 같은 것 이다.
- 자바스크립트는 dynamically typed은 프로그램이 동작할때 실시간으로 실행되어, 런타임시 오류가 생길수있다.
- 타입스크립트는 Statically Typed 으로 컴파일시간때 이러한 에러를 잡을수있다.
- 자바스크립트는 객체지양형 언어이지만, 강력한 객체지향 프로그램을 하기에는 어렵다. es6클래스만으로는 한계적이기 때문이다.
- 타입스크립트는 이러한점을 보완하는 class, interface, generics, types 다양한것을 활용할수있다.
- Client-side, Server-side 둘다 가능하다. 이유는 타입스크립트를 자바스크립트 코드로 변환하기때문에 (컴파일러 또는 바벨을 이용하여)
왜 타입스크립트를 배워야하는가?
- 자바스크립트는 프로그램이 동작할때 타입이 결정되는 프로그램 언어
- 타입스크립트는 코딩이 할때 타입이 정해져 즉각적으로 에러를 알수있다.
기본이해
- 코드를 프로그램 형태로 동작시키기 위해 언어나 바이너리 형태로 변화해주는 작업 = 컴파일러
- 컴파일러 시간에 타입이 결정되고 확인이 되면 stactically typed
- 프로그램이 동작할때, 런타임환경때 동작되고 확인되는것을 dynamically typed
예제)
// statically typed
let num = 10;
num = "good";
// dynamically typed
let num:number = 10;
num = "good"; //error 발생!!
그럼 왜 타입스크립트가 더좋은가?
- 자바스크립트는 타입이 없기에, 가독성이 굉장히 떨어진다. ex 변수가 어떤타입이고 어떤것인지 모른다.
- 내가 개발을할때 이슈를 잡는게 아니라, 사용자가 어플리케이션을 사용할때 에러를 만나 문제를 발생한다
- 실시간으로 에러에대한 검사를 할수있어 조금더 안정적이고 확장이쉬운 개발을 할수있다.
- 강력한 객체지향언어를 할수있다. (Object-Oriented Programming)
- OOP = 객체위주로 모듈성있는 코드를 작성하고, 모듈별로 재사용 할수있으며, 객체단위로 확장할수있는 확장성, 유지보수성이 굉장히 높다.
타입스크립트에 필요한 준비물
- vs code
- terminal
- node js = 자바스크립트 런타임 환경으로써, 자바스크립트를 브라우저 밖에서 (터미널)에서 이용할수있도록 하는것 → npm 이나오는 패키지 매니저로 다양한툴이나 라이브러리를 간편하게 설치 및 업데이트를 도와줌.
- 타입스크립트 툴 ⇒ 자바스크립트 코드로 변환해주는 툴
타입스크립트 설치하는법
- npm install -g typescript
- tsc -v 버전확인
- npm install -g ts-node => 타입스크립트 코드를 자바스크립트코드로 변환해서 노드에서 실행하는것을 한번에 도와주는 툴 설치
- 사용법 ts-node 파일