(data.js)
var a = 10;
var b = {name :'kim'};
(index.ts)
declare let a :number;
console.log(a + 1);
js파일에서 쓴 코드를 ts파일에서 사용하고 싶다면 ts파일에서 위의 코드처럼 declare를 선언하고 사용할 수 있다.
.ts파일에 있던 변수는 그냥 import/export하면 된다.
(data.ts)
type Age = number;
let 나이 :Age = 20;
(index.ts)
console.log(나이 + 1) //가능
let 철수 :Age = 30; //가능
타입스크립트에서는 import/export없이도 다른 파일에서 가져다 쓸 수 있다.
즉, global변수가 된다는 것인데 그것을 Local Module로 바꾸기 위해서는
(data.ts)
export {};
type Age = number;
let 나이 :Age = 20;
(index.ts)
console.log(나이 + 1) //불가능
let 철수 :Age = 30; //불가능
위의 코드처럼 export{}를 아무 위치에나 넣어주면 된다.
그럼 import/export써야한다.
ts 파일에 import export 문법이 없으면 글로벌 모듈이 된다.
ts 파일에 import export 문법이 있으면 로컬 모듈이다.
근데 로컬 모듈에서 갑자기 전역으로 변수를 만들고 싶을 때가 생길 수도 있다.
declare global {
type Dog = string;
}
그런 경우 로컬파일에 위의 코드처럼 만들면 global하게 사용할 수 있게된다.