본문 바로가기
타입스크립트(TS)

엠비언트 타입(Ambient Type)(.d.ts)

by goodchuck 2024. 11. 2.

목차

     

     

    엠비언트 타입이란?

    코드 외부에서 정의된 객체, 라이브러리, 전역 변수 등의 타입을 명시하기 위해 사용

    주로 타입 정의 파일(.d.ts)로 제공되며, 외부 모듈이나 브라우저 API 같은 것을 사용할 때 타입을 명확히 하기 위해 사용함. 이 방식으로 타입스크립트 코드가 특정 환경의 정의를 알 수 있도록 돕고, 타입 안정성을 유지할 수 있게 한다.

    .d.ts 확장자를 가진 파일에서는 타입 선언만 할 수 있으며 값을 표현할 수는 없다.

     

    엠비언트 타입의 주요 사용 사례

    1. 외부 라이브러리 정의 : @types 패키지를 통해 사용되는 외부 라이브러리의 타입을 정의한다.
    2. 전역 객체 정의 : 프로젝트에서 정의한 전역 변수, 함수, 객체의 타입을 명시할 때 활용 한다.
    3. 모듈 보강 : 외부 모듈에 새로 추가된 API나 보강할 타입을 추가할 때 사용한다.

    엠비언트 선언 구문

    타입스크립트에서 엠비언트 선언은 declare 키워드를 통해 이루어진다. 이를 통해 타입스크립트는 코드의 실제 구현 없이 타입을 인식할 수 있게 된다.

    // 전역 변수의 엠비언트 선언
    declare const API_URL: string;
    
    // 전역 함수의 엠비언트 선언
    declare function logMessage(message: string): void;
    
    // 전역 객체의 엠비언트 선언
    declare namespace MyApp {
      const version: string;
      function initialize(): void;
    }

     

    모듈을 위한 엠비언트 타입 선언

    Node.js 또는 ES 모듈에서 특정 모듈의 타입을 정의해야 할 때 declare module 을 사용한다.

    // lodash 같은 외부 라이브러리의 타입을 선언
    declare module "lodash" {
      export function chunk<T>(array: T[], size: number): T[][];
    }

     

    예시 .d.ts 파일을 이용한 엠비언트 타입 정의

    global.d.ts라는 파일을 만들어 전역 타입을 정의하는 것도 일반적인 방법이다. 이 파일을 통해 프로젝트 전반에 걸쳐 전역 타입을 사용할 수 있다.

    // global.d.ts
    declare global {
      interface Window {
        myCustomProperty: string;
      }
    }
    
    export {};

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

    [TS]@types  (1) 2024.11.02
    [TS] 커스텀 유틸리티 타입 활용하기  (0) 2024.07.28
    [TS] index.d.ts 알아보기  (0) 2024.06.16