타입스크립트, 다른 곳에서 선언된 전역변수 처리

이 블로그의 스크립트는 타입스크립트로 만들고 있는데 타입스크립트를 쓰면서 왜 그동안 타입스크립트를 써 볼 생각을 안했나 싶을 정도로 매우 편하다. 스크립트를 잘못 써도 무작정 실행이 안되는게 아니라 어디가 어떻게 잘못 됐는지 알려주니 완전 딴 세상.

그러다 타입스크립트가 아니라면 오류가 안났을 사항이 생겼다.

error TS2304: Cannot find name '변수명'

저 변수는 타 서비스와 연계된 부분이라 HTML내에서 전역변수로 처리한 부분인데, 타입스크립트내에서 선언한 적이 없으니 스크립트 실행에는 오류가 발생하지 않지만 컴파일 하면서 해당 변수를 찾을 수 없다고 오류가 나타났다.

declare const 변수명: any;

해결방법은 위와 같이 declare 라고 타입을 추가하여 변수선언을 해주면 되는데 declare 는 이미 다른 곳에서 선언한 변수라는 것을 알려주는 의미로 사용한다. 컴파일러가 인식하지 못하는 영역에서 선언된 변수가 있을 때 사용하는 딱 이 용도.

그리고 이번에는 다음과 같은 오류가 발생하였는데,

error TS1184: Modifiers cannot appear here.

전역변수인데 난 특정 함수에서 쓸거니까… 라는 생각으로 함수 내에서 선언했더니 여기에서 쓸 수 없다고 친절히 알려주었다. 전역으로 위치를 옮기니 오류 없이 통과~