
컴파일러시 적용되는 세부사항을 직접 설정함으로써...
tsc --init
→ tsconfig.json 파일 생성됨
tsc src/index.ts 와 같이 파일의 경로를 일일이 찾아서 컴파일 해주기에 무리가 생김 {
"include": ["src"] // src경로 아래 있는 모든 파일
}
→ tsc 명령어만 입력하면 해당 위치의 모든 ts파일을 컴파일 해줌

"target": "ES5" 설정 (ES5 문법: 함수표현식){
"compilerOptions": { // 상세옵션설정
"target": "ES5"
},
}

"target": "ESNext" 설정 (ES6 문법: 함수표현식){
"compilerOptions": {
"target": "ESNext" // js최신버전
},
}

모듈시스템
ES 모듈 시스템 (ESM)
- 형태
import from '...' export default ~CommonJS (CJS)
- 형태 (예전형태)
const a = require('...') module.exports = ~


"module": "CommonJS" 설정{
"compilerOptions": {
"module": "CommonJS"
},
}


"module": "ESNext" 설정 (ES 모듈 시스템){
"compilerOptions": {
"module": "ESNext"
},
}


{
"compilerOptions": {
"outDir": "dist"
},
}


{
"compilerOptions": {
"strict": true
},
}
매개변수를 전달할 때
"strict": true → 매개변수의 타입이 추론되지 않기 때문에 오류 발생
"strict": false
JS 프로젝트를 TS로 마이그레이션 하는 경우 대참사(?)를 막기위해 strict를 false 로 설정하기도 함
const a를 선언// index.ts
const a = 1;
// hello.ts
const a = 1;

export{} → 독립된 공간으로 취급됨// index.ts
const a = 1;
export {};
{
"compilerOptions": {
"moduleDetection": "force"
},
}
"module": "ESNext"경우
"module": "CommonJS"경우
※ 참고 : tsconfig.json 수정 후 적용안될시 ※
ctrl+shift+p- restart검색
ts-node src/index.ts 실행

오류 발생 → es-module 로드 불가

package.json의 "type": "module" 추가
오류 발생 → ts-node가 es-module 시스템 해석 불가 (ts-node는 기본적으로 common.js를 사용)

tsconfig.json에 다음 옵션 추가 → ts-node가 es-module 시스템으로 동작
{
"ts-node": {
"esm": true
},



tsc 명령을 내리고 다음 오류를 마주하였다.


혹은 다음 방법으로도 해결이 가능했다.

rm -rf node_modules