티스토리 뷰

반응형

TypeScript는 JavaScript의 상위 집합 언어이며, JavaScript의 모든 기능을 포함합니다. 이에 추가로 TypeScript는 네임스페이스와 모듈이라는 구조적 요소를 제공합니다. 이 구조적 요소들은 코드의 구성성을 개선하고, 유지보수를 용이하게 만듭니다.

네임스페이스

네임스페이스는 전역 스코프에서 변수와 함수 이름이 충돌하는 것을 방지하기 위한 방법입니다. 네임스페이스는 이름이 겹치지 않도록 하여 코드를 보다 체계적으로 구성할 수 있도록 도와줍니다.

TypeScript에서는 네임스페이스를 namespace 키워드를 사용하여 정의합니다. 예를 들어, 다음과 같이 MyNamespace 네임스페이스를 정의할 수 있습니다.

namespace MyNamespace {
  export function myFunction() {
    // 함수 내용
  }
}

함수나 변수를 네임스페이스 내부에서 사용할 경우에는 반드시 export 키워드를 붙여야 합니다. export 키워드를 붙이지 않은 함수나 변수는 해당 네임스페이스 외부에서 사용할 수 없습니다.

모듈

모듈은 코드의 재사용성을 높이기 위한 방법입니다. 모듈을 사용하면 여러 파일에서 공통으로 사용하는 코드를 한 곳에 모아서 관리할 수 있습니다.

TypeScript에서는 export 키워드를 사용하여 모듈의 내용을 외부로 노출시킵니다. 예를 들어, 다음과 같이 myModule 모듈을 정의하고, myFunction 함수를 외부로 노출시킬 수 있습니다.

export module myModule {
  export function myFunction() {
    // 함수 내용
  }
}

모듈을 사용할 때는 import 키워드를 사용하여 해당 모듈을 불러옵니다. 예를 들어, 다음과 같이 myModule 모듈을 불러와서 myFunction 함수를 사용할 수 있습니다.

import { myModule } from './myModule';

myModule.myFunction();

TypeScript에서는 모듈을 위한 여러가지 형식을 제공합니다. 이 형식들은 파일 시스템과 관련이 있을 수도 있고, AMD, CommonJS, UMD 등의 모듈 형식을 지원할 수도 있습니다.

네임스페이스와 모듈은 코드를 보다 체계적으로 구성하고, 재사용성을 높이는 데에 큰 도움을 줍니다. 네임스페이스는 전역 스코프에서 변수와 함수 이름이 충돌하는 것을 방지하고, 모듈은 여러 파일에서 공통으로 사용하는 코드를 한 곳에 모아서 관리할 수 있도록 도와줍니다.

 

반응형

'타입스크립트' 카테고리의 다른 글

TypeScript 함수 시그니처란?  (0) 2023.03.17
타입스크립트 별칭과 인터섹션  (0) 2023.03.16
타입스크립트 Decorator  (0) 2023.03.16
타입스크립트 Guard  (0) 2023.03.16
타입스크립트 어노테이션  (0) 2023.03.16
댓글