자바스크립트의 확장판으로
자바스크립트의 기본 문법 + 타입 관련 기능을 추가한 언어













실행안되게 막는게 좋다! 만약 코드가 매우 복잡하다면?

정적타입 시스템 (에디터 상에서 오류 바로 알려줌)
코드 실행전 잘 못 사용시 오류 발생

하지만 정적타입 시스템의 단점이 존재한다.




컴파일 : 컴퓨터가 이해할 수 있는 기계어 형태로 변환
그리고 이렇게 코드를 컴파일하는 녀석을 특별히 컴파일러 라고 부릅니다. 컴파일 하는 친구 라는 뜻이죠?
자바스크립트 언어를 컴파일러를 통해 컴파일 하면 바이트 코드로 변환된다. 바이트 코드로 변환하기 전 AST(추상 문법 트리)라는 특별한 형태로 먼저 변환한다.
AST는 추상 문법 트리라는 뜻이다.



이렇게 코드를 AST로 변환하고 나면 이제 마지막으로 컴파일러가 AST를 바이트코드로 변환하고 컴파일이 종료됩니다.


npm init
@types/node : Node.js 내장 기능들의 타입 정보를 담고있는 패키지
npm i @types/node
설치 후 , node_modules/@types 폴더가 설치됨
타입스크립트 컴파일러(TSC)는 npm의 typeScript 패키지에 동봉되어 있음
sudo npm i -g typescript
타입스크립트를 컴파일 하기 위해서는 타입스크립트 패키지를 전역에 설치해 주어야 한다.
tsc -v
src/index.ts 파일 생성
console.log('Hello TypeScript');
const a: number = 1;
tsc src/index.ts
컴파일 완료시 src/index.js 파일 생성됨
console.log('Hello TypeScript');
const a: number = 1;
node src/index.js
Hello TypeScript
sudo npm i -g ts-node
ts-node -v
v10.9.1
ts-node src/index.ts
컴파일 결과 생성되는 자바스크립트의 코드 버전은 어떻게 할 것인지 등의 컴파일의 아주 세부적인 사항들
다른 언어에 비해 컴파일러 옵션을 아주 자유롭게 개발자가 프로젝트 성격에 따라 쉽게 설정할 수 있음
패키지 루트 폴더 아래 tsconfig.json 파일 설정, Node.js 패키지 단위로 설정
tsc --init
include 옵션 : tsc에게 컴파일 할 타입스크립트 파일의 범위와 위치를 알려주는 옵션
{
"include": ["src"]
}
이렇게 설정하면 tsc 명령어만 입력해도 src 폴더 아래의 모든 타입스크립트 파일이 동시에 컴파일 됨
자바스크립트 코드의 버전 설정
{
"compilerOptions": {
"target": "ES5"
},
"include": ["src"]
}
tsc를 이용해 컴파일 하면 타입스크립트 코드가 ES5버전의 자바스크립트 코드로 변환됨
const func = () => console.log("Hello");
tsc를 이용해 컴파일 하고 결과를 확인하면 다음과 같이 화살표 함수가 함수 표현식으로 변환된 걸 확인할 수 있음
const func = function(){
console.log("Hello");
}
화살표 함수 같은 ES6의 문법이 ES5의 문법으로 변환된 것
한 입 크기로 잘라먹는 타입스크립트, 이재환