[typescript] 타입스크립트에서 네임스페이스를 선언하는 방법

코드를 구조화하고 모듈성을 유지하는 것은 대규모 응용프로그램을 개발하는 데 매우 중요합니다. 네임스페이스는 이러한 목적으로 사용될 수 있습니다. 네임스페이스는 전역 스코프에서 변수와 함수 이름을 구분하기 위해 사용됩니다. 타입스크립트에서 네임스페이스를 선언하는 방법을 살펴보겠습니다.

네임스페이스란?

네임스페이스는 연관된 변수, 함수, 클래스 등을 하나의 이름 아래에 묶는 방법입니다. 이를 통해 전역 스코프에서의 이름 충돌을 방지할 수 있습니다.

namespace 키워드 사용하기

타입스크립트에서 네임스페이스는 namespace 키워드를 사용하여 선언됩니다. 아래는 기본적인 네임스페이스의 선언 예제입니다.

// MyNamespace.ts
namespace MyNamespace {
    export interface SomeInterface {
        // 인터페이스 내용
    }

    export function someFunction() {
        // 함수 내용
    }

    export class SomeClass {
        // 클래스 내용
    }
}

위 예제에서 MyNamespace는 하나의 네임스페이스를 나타내며, 그 내부에는 인터페이스, 함수, 클래스 등이 포함되어 있습니다.

네임스페이스 사용하기

다른 파일에서 선언된 네임스페이스를 사용할 때는 ///<reference path="MyNamespace.ts" /> 를 이용하여 해당 파일을 참조해야 합니다. 그리고 해당 네임스페이스의 멤버를 접근할 때는 네임스페이스이름.멤버 형식으로 접근할 수 있습니다.

// 다른 파일에서 네임스페이스 사용하기
///<reference path="MyNamespace.ts" />

let obj: MyNamespace.SomeInterface = { /* 객체 내용 */ };
MyNamespace.someFunction();
let instance = new MyNamespace.SomeClass();

모듈과의 관계

네임스페이스는 모듈의 한 형태로 볼 수 있습니다. ES6부터는 모듈이라는 개념이 도입되면서 네임스페이스 대신 모듈을 사용하는 것이 권장됩니다. 따라서 새로운 코드를 작성할 때에는 네임스페이스보다는 모듈을 사용하는 것이 좋습니다.

이제 타입스크립트에서 네임스페이스를 선언하고 사용하는 방법에 대해 알아보았습니다. 네임스페이스를 적절히 활용하여 코드를 구조화하고 모듈성을 유지하는 데 도움이 되길 바랍니다.

참고 자료