declare 키워드는 컴파일러에게 해당 변수나 함수가 이미 존재한다는 것을 알리는 역할을 한다. 다른 영역의 코드에서 declare로 선언된 해당 변수나 함수를 참조할 수 있다. declare로 선언된 부분은 JS로 컴파일 되지 않고 TS 컴파일러에게 타입 정보를 알리기만 한다. 이미 생성된 변수에 타입을 추가하고 싶을 때 사용하는 것 같다.
이 영역 안에서는 declare 키워드가 기본으로 붙는다. 또한 이 영역 안에서는 선언 코드가 아닌 일반 코드를 작성할 수 없다.
예)
declare global {
interface Window {
DesktopLayout: {
set: (state) => void;
render: (options) => void;
hydrate: () => void;
};
}
}