npm init
으로 package.json을 초기화 한 후, 타입스크립트를 설치해볼 수 있다.
npm i @types/node
sudo npm i typescript -g
tsc src/index.ts
와 같이 치면 컴파일 된 자바스크립트 파일을 얻을 수 있는데, (예를 들어 index.ts → 컴파일 되면 index.js가 나온다!) 매번 이렇게 하나하나씩 수정하고 컴파일 다시 해서 index.js 같이 컴파일 된 파일을 들여보는 게 어려우니(컴파일된 index.js 는 node src/index.js 와 같이 터미널에 치면 된다) 아래의 명령어를 쓴다.sudo npm i ts-node -g
ts-node src/index.ts
와 같이 터미널창에 입력하면 node src/index.js 와 같은 결과를 얻을 수 있다.tsc --init
tsconfig.json
파일이 생성됨."include" : []
"include" : ["src"]
"target" : "ES5 (설정)"
//예시 tsconfig.json
{
"compilerOptions": {
"target": "ESNext"
},
"include": ["src"]
}
"module" : "ESNext"(설정)
"outDir" : "dist (설정할 폴더 위치)"
"strict" : true
"moduleDetection": "force”
위 옵션을 넣어줬는데도 빨간줄이 있다면, cmd + shift + p ⇒ restart 검색해서 타입스크립트 restart를 해보자.
어떻게 옵션에 저걸 넣으면 오류가 사라질까? tsc 를 입력하여 컴파일된 자바스크립트 파일을 보면 알 수 있다.
우리가 첫 번째 해결방법으로 봤던 export{} 넣는걸 자동으로 추가해주는 옵션인 것 !
만약 options에서 module이 CommonJS라면 export가 아닌 CommonJS 시스템으로 변환된다.
ts-node를 쓸 때는 package.json에 “type” : “module” 설정을 해줘야한다. node에서 esModule을 쓰기 위해서 필요한 사항.
//package.json
// ~중략
"description": "",
"main": "index.js",
"type": "module",
ts-node도 기본적으로 commonJS 를 사용하기 때문에, 아래의 설정을 tsconfig.json에 해줘야한다.
//tsconfig.json
"ts-node": {
"esm": true
},
strictNullChecks
strictNullChecks
= false 를 넣어줌으로써 막을 수 있다.//tsconfig.json
"compilerOptions": {
"strictNullChecks": false
},
let numA : number = null;
number 타입으로 설정된 numA가 null 로 지정해도 에러를 피할 수 있다. 기본은 true이다.설정한대로 잘 작성되었는지 확인하기
- src - index.ts 파일 생성 후 console.log(”hello”) 작성
- 터미널에 tsc 입력해서 dist 폴더안에 index.js가 생겼는지 확인
- 터미널에 node dist/index.js 입력하여 index.ts에서 적은 console값이 잘 나왔는지 확인
- 터미널에 ts-node src/index.ts 입력해서 console값이 잘 나왔는지 확인