Frontend
tsconfig.json 설정 오류 해결: allowImportingTsExtensions는 왜 에러가 날까?
ji-frontdev
2025. 4. 15. 21:19
728x90
반응형
📌 에러 원인:
allowImportingTsExtensions 옵션은 TypeScript가 .ts 또는 .tsx 확장자를 명시적으로 import하는 것을 허용하는 기능입니다.
import { something } from './utils.ts';
이런 식의 import를 허용하려면 TypeScript가 실제로 JavaScript 파일을 emit하지 않는 설정이어야 합니다. 그렇지 않으면 문제가 발생할 수 있기 때문이에요.
그래서 이 옵션을 사용하려면 아래 중 하나를 설정해야 합니다:
- "noEmit": true
👉 TypeScript가 아무 파일도 출력하지 않음 - "emitDeclarationOnly": true
👉 타입 정의 파일(.d.ts)만 출력함
✅ 해결 방법:
방법 1. noEmit 설정 추가하기 (가장 일반적)
{
"compilerOptions": {
"allowImportingTsExtensions": true,
"noEmit": true
}
}
방법 2. emitDeclarationOnly 설정 추가
{
"compilerOptions": {
"allowImportingTsExtensions": true,
"emitDeclarationOnly": true
}
}
❓ 왜 이렇게 제한할까?
.ts 확장자를 포함한 import는 Node.js ESM 환경에서 주로 사용되며, TypeScript가 이를 처리할 때 .js로 변환하는 과정에서 충돌이 발생할 수 있기 때문입니다. 그래서 출력을 하지 않도록 제한한 것입니다.
728x90
반응형