[typescript] 타입스크립트 네임스페이스 간의 상호작용 방법

타입스크립트에서 네임스페이스를 사용하여 모듈을 구조화할 수 있습니다. 하지만 때때로 여러 네임스페이스 간의 상호작용이 필요할 수 있습니다. 이 포스트에서는 타입스크립트 네임스페이스 간의 상호작용을 달성하는 방법을 알아보겠습니다.

네임스페이스란?

타입스크립트에서 네임스페이스는 코드를 논리적으로 그룹화하여 전역 네임스페이스에서 분리하는 데 사용됩니다. 이를 통해 모듈 간의 이름 충돌을 방지하고 구조화된 코드를 유지할 수 있습니다.

네임스페이스 간의 상호작용

네임스페이스 간의 상호작용을 위해 다양한 방법을 사용할 수 있습니다. 여기에는 네임스페이스 병합, 참조를 통한 외부 네임스페이스 접근, 그리고 전역 객체를 사용한 네임스페이스 간 상호작용이 포함됩니다.

네임스페이스 병합

타입스크립트에서는 /// <reference path="..." /> 구문을 사용하여 다른 네임스페이스를 참조할 수 있습니다. 이를 통해 여러 네임스페이스를 하나로 병합하고 상호작용할 수 있습니다.

// NamespaceA.ts
namespace NamespaceA {
  export const var1 = 'Value from NamespaceA';
}

// NamespaceB.ts
/// <reference path="NamespaceA.ts" />
namespace NamespaceB {
  export const var2 = NamespaceA.var1 + ' - Value from NamespaceB';
}

위의 예제에서는 /// <reference path="NamespaceA.ts" />를 사용하여 NamespaceB에서 NamespaceA의 변수에 접근할 수 있습니다.

참조를 통한 외부 네임스페이스 접근

외부 네임스페이스에 접근하기 위해 네임스페이스 이름을 사용하여 변수, 함수 또는 클래스에 접근할 수 있습니다.

// NamespaceA.ts
namespace NamespaceA {
  export const var1 = 'Value from NamespaceA';
}

// NamespaceB.ts
namespace NamespaceB {
  export const var2 = NamespaceA.var1 + ' - Value from NamespaceB';
}

위의 예제에서는 NamespaceA에서 선언된 var1NamespaceB에서 접근하여 사용할 수 있습니다.

전역 객체를 사용한 네임스페이스 간 상호작용

네임스페이스 간의 상호작용을 위해 전역 객체를 사용할 수도 있습니다. 이를 통해 네임스페이스 외부에 있는 객체에 접근하고 상호작용할 수 있습니다.

// GlobalObject.ts
const GlobalObject = {
  var1: 'Value from GlobalObject'
};

// NamespaceA.ts
namespace NamespaceA {
  export const var2 = GlobalObject.var1 + ' - Value from NamespaceA';
}

위의 예제에서는 GlobalObject에 정의된 변수에 NamespaceA에서 접근하여 사용할 수 있습니다.

결론

타입스크립트 네임스페이스 간에 상호작용하는 방법을 알아보았습니다. 네임스페이스 병합, 외부 네임스페이스 접근, 그리고 전역 객체를 사용한 상호작용을 통해 모듈 간에 유연하게 상호작용할 수 있습니다.

더 많은 정보를 원하시면 타입스크립트 공식 문서를 확인해보세요.