notes

Declaring Global Variables in TypeScript2020. 7. 31.

daum 주소검색등 window에 뭔가 끼워넣는 외부 기능 사용시, window.someApi등으로 호출하게 될 때가 있는데, TS에서 당연히 Property 'someApi' does not exist on type 'Window & typeof globalThis'. 라고 뭐라고 한다. 요걸 해결하기 위해 보통은:

(window as any).someApi
(window as any).someApi

혹은

(<any>window).someApi
(<any>window).someApi

를 쓰라고 하는데 아래가 더 나은 것 같다.

declare global {
  interface Window {
    someApi: any; // 혹시 타입 정의를 제공해준다면 somApiType
  }
}
declare global {
  interface Window {
    someApi: any; // 혹시 타입 정의를 제공해준다면 somApiType
  }
}

요게 되는 것은 interface는 merging이 되기 때문.

Ref.

https://mariusschulz.com/blog/declaring-global-variables-in-typescript

Tags