Declaration File

declare 노출 범위

전역 값은 var/function/class로, 전역 객체 묶음은 namespace로, import로 가져올 대상은 module로 선언하면 .d.ts가 실제 실행 코드를 대신하지 않으면서 타입 계약만 전달합니다.

전역 값

이미 window나 런타임에 존재

구현을 만들지 않고 변수, 함수, 클래스의 타입만 전달합니다.

namespace

jQuery처럼 한 이름 아래 API가 모임

전역 객체 안의 이벤트, 함수, 상수 타입을 한 공간에 묶습니다.

module

import 대상 패키지 이름이 있음

모듈 이름, export, default export의 타입 모양을 선언합니다.

확장자 모듈

png, svg, css를 import해야 함

에셋 import를 문자열이나 컴포넌트 타입으로 알려줍니다.

전역 선언과 모듈 선언의 경계

전역 타입 선언 파일의 최상위에 export를 넣으면 파일 자체가 모듈로 취급됩니다. 전역 점검이 목적이라면 declare global이나 파일의 모듈화 여부를 함께 확인해야 합니다.