항상 React를 공부하며, 공고를 보면 타입스크립트가 따라다닌다. 타입스크립트를 사용하면 개발 환경에서 확실히 에러를 줄일 수 있다는 이야기를 많이 들었다. 그래서 이번 기회에 제대로 배워보도록 하자 ㅇㅅㅇ
동적 타이핑 언어이다. 변수의 자료형을 자유롭게 바꿔서 사용 가능한 것이다.

정적 타이핑 언어에서는 타입 관련 오류가 있으면 애초에 오류를 바로 알려주고 실행 되기전에 타입 검사까지 모두 마치고 실행되기 때문에 오류가 있다면 실행 자체가 불가능하다.
정적 타이핑이라는 문법을 새로 추가했다.


npm init을 입력하면 package.json 파일이 생성된다.npm i --save-dev typescript 명령어를 입력한다.
--save-dev옵션으로 꼭 설치해야한다.
- 왜? 타입스크립트를 개발에만 필요한 의존성으로 설치하기 위함이라고 한다.
- 타입스크립트는 주로 개발환경에서 사용되기에 실제 배포나 실행될때는 자바스크립트로 변환된 코드만 필요하다. 그래서 해당 옵션으로 설치해서 배포 시에는 패키지에 포함되지 않도록 한다.
npx tsc --init
- npx는 노드 모듈을 실행한느 명령어이고,
tsc는 타입스크립트에서 제공하는 타입스크립트 컴파일러라는 모듈이다.- 여기서 컴파일러는 타입스크립트 코드를 자바스크립트 코드로 바꿔주는 거라고 일단은 이해하자.
- 그러면
tsconfig파일이 생기는데, 여기있는 옵션들로 tsc라는 컴파일러가 타입스크립트 코드를 처리한다.
"build" : "tsc" 를 추가한다.
- 이거는 build라는 명령어로 tsc, 타입스크립트 컴파일러를 실행한다는 것
npm run build라고 하면 같은 이름의 js 파일이 생긴다.use strict라고 해서 코드가 생기는데, 이 코드는 자바스크립트 코드를 strict 모드로 실행할때 사용한다.
- 좀 더 엄격한 규칙으로 자바스크립트를 실행하고 싶을때 사용한다.
(스트릭 모드 참고 - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode)- 이 옵션이 tsconfig 파일에 켜져있어서 항상 켜지는 것이다.
- 그리고
"start": "node main.js"이거를 package.json 파일의 스크립트에 추가하면npm start로 실행할 수 있다.
해당 방법은 tsc를 사용한 컴파일 방법이다. 이 방법외에도 tsx를 사용한 실행방법이 있다.
npm i -g tsx를 설치해서 tsx 명령어로 실행시킨다. 프로젝트 규모가 작거나 테스트용 코드라면 tsx를 사용하면 빠르게 작업할 수 있다.

트랜스파일(Transpile)이라는 용어를 사용한다. 이것도 프로그래밍 언어를 번역하는 것이지만, 주로 소스 코드를 브라우저나 node.js가 실행할 수 있는 형태로 바꾸는 것을 말한다. 

참고
최근에는 Deno를 만들었다. node.js랑 비슷하지만 기본적으로 타입스크립트를 사용하는데, 자체적으로 타입검사랑 트랜스파일링을 해주기 때문에 타입스크립트를 쓰기 위해서 따로 프로젝트 세팅 등이 필요없다.
링크 참고: https://deno.kr/



참고
ts 파일에서 오류가 있다고 하더라도 js파일이 생성될 수 있다! 다만, tsconfig.json 파일에서 설정을 변경해줄 수 있다.
{
"compilerOptions" : {
"noEmitOnError": true
}
}
위 설정을 사용하시면 에러가 있을때 js 파일을 만들지 않게 된다.
이미지 출처: <한 입 크기로 잘라먹는 타입스크립트>
https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8?inst=68d752f7&utm_source=instructor&utm_medium=referral&utm_campaign=inflearn_%ED%8A%B8%EB%9E%98%ED%94%BD_promotion-link