체인의정석

Ts에서 export가 하나도 정의되어 있지 않은 경우 (모듈 vs 파일) 본문

개발/frontend

Ts에서 export가 하나도 정의되어 있지 않은 경우 (모듈 vs 파일)

체인의정석 2025. 8. 20. 17:01
728x90

현상 : 평소에 모듈의 경우 모듈 정의를 다 하고 상용하였으나, 인계 받은 코드에서 export에 대한 선언 없이 모듈처럼 특정 파일을 사용하고 있는 상황. 하지만 하나라도 export를 붙이면 컴파일 오류가 발생. 해당 방식으로 사용되는 케이스는 처음봐서 어떠한 원리로 동작하는지 파악

결과 : typescript가 파일 자체를 모듈로 취급할지 아니면 스크립트로 취급할지를 결정

파일 안에 export나 import가 한 줄도 없으면 해당 파일은 모듈이 아닌 전역스코프에 포함되는 스크립트로 취급 이에 따라서 import 구문 없이 바로 사용가능하지만 충돌할 위험이 커지기 때문에 사용이 권장되지는 않음.

보통은 export를 정의하고 import를 정의해서 사용.

 

TypeScript에서는 ECMAScript 2015(ES6)와 마찬가지로, 최상위 레벨에 import나 export가 있는 모든 파일은 모듈로 간주됩니다.

반대로, 최상위 import나 export 선언이 없는 파일은 그 내용이 전역 스코프에서 사용 가능한 스크립트로 취급됩니다.

https://www.typescriptlang.org/ko/docs/handbook/modules.html

 

Documentation - Modules

How modules work in TypeScript

www.typescriptlang.org

*일단 기존의 코드의 수정사항이 많기 때문에 내버려두고 export를 후에 처리하기로 결정, 작동은 하지만 매우 안좋은 코딩 방식으로 생각 됨

728x90
반응형
Comments