[typescript] 타입스크립트 모듈과 네임스페이스에 대한 자세한 설명

타입스크립트에서는 코드를 구성하고 조직화하기 위해 모듈과 네임스페이스를 사용할 수 있습니다. 이 두 가지 기능은 코드의 구조를 개선하고 재사용성을 높여주는 데 도움이 됩니다.

모듈

모듈은 코드를 논리적으로 구분하는 데 사용됩니다. 각 모듈은 자체적인 스코프를 갖고 있으며, 외부에 공개할 항목을 선택적으로 지정할 수 있습니다. 모듈을 사용하여 코드를 분할하고 별도의 파일로 저장할 수 있으며, 다른 모듈에서 필요한 기능을 가져다 사용할 수도 있습니다.

예시:

// math 모듈
export function add(x: number, y: number): number {
  return x + y;
}

export function subtract(x: number, y: number): number {
  return x - y;
}

위의 예시에서 export 키워드를 사용하여 addsubtract 함수를 외부에 공개하고 있습니다.

네임스페이스

네임스페이스는 코드를 논리적인 그룹으로 구조화하는 데 사용됩니다. 여러 파일에 걸쳐 있는 코드를 하나의 네임스페이스로 묶을 수 있고, 이를 통해 코드의 유지보수성과 가독성을 향상시킬 수 있습니다.

예시:

// geometry 네임스페이스
namespace Geometry {
  export interface Point {
    x: number;
    y: number;
  }

  export function distanceBetweenPoints(point1: Point, point2: Point): number {
    const dx = point2.x - point1.x;
    const dy = point2.y - point1.y;
    return Math.sqrt(dx * dx + dy * dy);
  }
}

위의 예시에서 namespace 키워드를 사용하여 Geometry 네임스페이스를 정의하고, 그 안에 Point 인터페이스와 distanceBetweenPoints 함수를 포함시켜 코드를 구조화하고 있습니다.

결론

타입스크립트 모듈과 네임스페이스는 코드의 구조를 개선하고 여러 파일 간의 의존성을 관리하는 데 도움이 됩니다. 모듈은 파일 수준에서, 네임스페이스는 코드 수준에서 구조화를 지원하며, 둘 다 코드의 유지보수성과 재사용성을 향상시키는 데 중요한 도구입니다.

본 포스팅은 타입스크립트 핸드북를 참고하여 작성되었습니다.