: 프로젝트를 진행하다보면 전역 객체에 프로퍼티를 할당해서 쓰는 경우가 있다. 이 때, 타입스크립트를 쓰는 프로젝트라면 이에 대해서 에러가 발생하게 된다.
Property 'somePropertyName' does not exist on type 'Window & typeof globalThis'.
보통은 위와 같은 에러를 낸다. 이 에러를 잡기 위해서는 window 단에 접근해서 해당 타입들을 지정해 줘야한다.
export {};
declare global {
interface Window {
somePropertyName : string;
}
}
위와 같이 해주면 해결된다. 이 때, export {}
를 해준건
Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.ts
위와 같은 에러를 리턴하기 때문이다(export {} 를 안해줬을 때). 일종의 트릭 같은건데 모듈처럼 보이게 만든거다. export를 써서(결국 빈객체를 export하지만).