npm init
설치
Node.js 타입 정보를 갖고 있는 TypesNode 패키지설치
npm i @types/node
npm install typescript
tsc-v
tsc src/index.ts
🧑🏫컴파일 완료
$ node src/index.js
npm i -g tsx
➡️tsx src/index.ts
타입스크립트 파일을 한방에 실행 해줌.
"outDir": "dist"
여기서 tsc
를 하면
dist
폴더에 js파일이 컴파일되어 생성
"strict": true
"moduleDetection": "force"
을 사용하면 자동으로 해결export나 import를 사용하면 독립된 모듈이라고 생각하게됨.
"moduleDetection": "force"
tsc로 컴파일하면 js파일에 export{}가 자동으로 나옴
"type": "module",
➡️그래도 ts 노드은 Es모듈을 해석을 못함.
ts.node
는 기본적으로 common,js
사용하기 때문 "ts-node": {
"esm": true
},
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
//컴파일 js파일이 저장될 폴더명
"outDir": "dist",
// 타입 엄격하게 검사하기
"strict": true,
//모듈을 각각 독립적으로 만들어줌
"moduleDetection": "force"
},
// ts 노드은 Es모듈을 해석할 수 있게
"ts-node": {
"esm": true
},
//"src" 안에있는 파일을 한방에 컴파일해라
// -> 터미널에 tsc만 입력하면 자동으로 컴파일 완료
"include": ["src"]
}
{
"name": "section1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/node": "^20.10.6",
"ts-node": "^10.9.2",
"typescript": "^5.3.3"
}
}
🧑🏫출처 - 한입크기로 잘라먹는 타입스크립트