더북(TheBook)

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

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를 추가하면 됩니다.

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