실제로 사용한 tsconfig.json를 바탕으로 알아보자.
{
"compilerOptions": {
"target": "ES2022",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2022", "DOM"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
/* Type Checking */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
/* Aliases */
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"references": []
}
"target": "ES2022"
"useDefineForClassFields": true
[[Define]]
동작(정의 시점에 프로퍼티를 직접 정의)을 따릅니다."module": "ESNext"
"lib": ["ES2022", "DOM"]
"ES2022"
: ES2022 내장 객체 및 기능에 대한 타입 정의를 사용합니다."DOM"
: 브라우저 환경에서 필요한 DOM 관련 API의 타입 정의를 제공합니다."skipLibCheck": true
이 옵션들은 주로 번들러(Vite, Webpack 등)와 함께 사용될 때 유용합니다.
"moduleResolution": "bundler"
"allowImportingTsExtensions": true
.ts
확장자를 명시적으로 사용할 수 있도록 허용합니다."resolveJsonModule": true
"isolatedModules": true
"noEmit": true