Module Interop

CommonJS와 TypeScript import 호환 흐름

CommonJS와 ES Module 문법은 내보내기 형태와 컴파일 옵션에 따라 가져오는 방식이 달라진다.

모듈 형태별 가져오기 판단

interop

module.exports

CommonJS는 객체나 함수를 module.exports로 내보낸다.

require()

Node 방식으로 모듈 값을 직접 가져온다.

esModuleInterop

default import 호환성을 높이는 컴파일 옵션이다.

Default Import

옵션과 선언 형태가 맞을 때 기본 가져오기를 쓴다.

Namespace

모듈 전체를 객체처럼 가져와 속성으로 접근한다.

Types

@types나 자체 선언이 import 형태를 보조한다.

내보내기 형태컴파일 옵션import 문법타입 확인
프로젝트 규칙

import 오류는 문법보다 모듈 시스템과 tsconfig 옵션 불일치에서 자주 난다. 먼저 내보내기 형태를 확인한다.