목차
엠비언트 타입이란?
코드 외부에서 정의된 객체, 라이브러리, 전역 변수 등의 타입을 명시하기 위해 사용
주로 타입 정의 파일(.d.ts)로 제공되며, 외부 모듈이나 브라우저 API 같은 것을 사용할 때 타입을 명확히 하기 위해 사용함. 이 방식으로 타입스크립트 코드가 특정 환경의 정의를 알 수 있도록 돕고, 타입 안정성을 유지할 수 있게 한다.
.d.ts 확장자를 가진 파일에서는 타입 선언만 할 수 있으며 값을 표현할 수는 없다.
엠비언트 타입의 주요 사용 사례
- 외부 라이브러리 정의 : @types 패키지를 통해 사용되는 외부 라이브러리의 타입을 정의한다.
- 전역 객체 정의 : 프로젝트에서 정의한 전역 변수, 함수, 객체의 타입을 명시할 때 활용 한다.
- 모듈 보강 : 외부 모듈에 새로 추가된 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 |