TypeScript

네임스페이스 사용법

네임스페이스는 관련 타입과 값을 하나의 이름 아래 묶어 전역 이름 충돌을 줄이던 타입스크립트의 구조화 기능이다.

1

목적

관련 이름을 한 경계로 모아 공개할 멤버와 내부 전용 멤버를 나눈다.

2

내부 모듈 패턴

예전 타입스크립트에서는 namespace가 내부 모듈처럼 파일 사이의 이름 묶음을 만들었다.

3

ES module 비교

ES module은 파일 자체가 스코프이며 import와 export로 의존성을 더 명확히 드러낸다.

4

namespace 오염

네임스페이스 이름은 전역에 남을 수 있고, 번들 경계를 흐리게 만들 수 있다.

Namespace

하나의 전역 이름 아래 멤버를 붙인다. 여러 파일 병합과 로드 순서에 민감할 수 있다.

ES module

파일마다 독립 스코프를 만들고 명시적 가져오기와 내보내기로 연결한다. 현대 번들러와 잘 맞는다.

namespace 오염

새 코드는 ES module을 기본으로 잡고, namespace는 레거시 코드나 전역 라이브러리 선언 파일을 읽을 때 필요한 배경지식으로 다루는 편이 좋다.