namespace to module

네임스페이스 사용 판단

네임스페이스는 전역 이름을 묶기 위한 TypeScript 기능이지만 현대 프로젝트에서는 ES 모듈이 의존성 관리에 더 적합합니다.

선언

이름 공간으로 묶기

namespace 안의 export 멤버만 외부에서 접근할 수 있습니다.

namespace Utils
다중 파일

순서 관리 부담

여러 파일 네임스페이스는 컴파일 순서와 outFile 관리가 필요합니다.

outFile
별칭

긴 이름 줄이기

import 별칭 문법으로 깊은 네임스페이스 경로를 호출 지점에서 짧게 고정합니다.

import V = Shapes.Vector
전환 이유

표준 모듈의 장점

ES 모듈은 파일 스코프와 명시적 import/export로 전역 충돌을 줄입니다.

export / import
전역 오염 namespace 자체가 전역 이름이 될 수 있음을 기억합니다.
번들링 현대 번들러와 생태계는 ES 모듈 기준으로 최적화됩니다.
레거시 대응 기존 d.ts나 오래된 코드에서 namespace를 읽을 수 있으면 충분한 경우가 많습니다.

네임스페이스는 역사적 맥락을 이해하되, 새 프로젝트의 기본 구조는 ES 모듈로 잡는 것이 안전합니다.