다음 경우에도 선언 병합을 활용하면 좋습니다.

    function Ex() { return 'hello'; }
    namespace Ex {
      export const a = 'world';
      export type B = number;
    }
    Ex(); // hello
    Ex.a; // world
    const b: Ex.B = 123;
    

    자바스크립트에서는 함수도 객체이므로 함수에 속성을 추가할 수 있습니다. 함수와 네임스페이스가 병합될 수 있으므로 앞의 코드에 에러가 발생하지 않는 것입니다. 함수에 속성이 별도로 있다는 걸 알리고 싶다면 함수와 동일한 이름의 namespace를 추가하면 됩니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.