Namespace

namespace는 전역 이름 충돌을 줄이지만 모듈 경계와 다르다

현대 TypeScript에서는 파일 모듈을 기본으로 쓰고, namespace는 전역 타입 보강 같은 제한된 상황에서 읽는다.

namespace
하나의 전역 이름 아래 묶음
script 스타일 코드에서 충돌 완화
module
파일 단위 scope
import/export로 의존성 명시
ambient namespace
외부 전역 라이브러리 설명
d.ts에서 사용
판단
앱 코드는 module 우선
전역 보강만 예외적으로 namespace
상황판단
피할 것새 앱 구조를 namespace로 설계
읽을 때전역 이름 아래 어떤 타입이 노출되는지 확인
핵심namespace는 파일 모듈의 대체재가 아니다

핵심 namespace는 파일 모듈의 대체재가 아니다