I declare a global variable in typescript something like: global.test = "something" I try to do that I get the error property ‘test’ does not exist on type ‘Global’.
Asked
Active
Viewed 3.2k times
10
-
I've seen people do it a few different ways. You can setup global variables inside of a .ts file that just exports each variable. Or you can put them in a file that looks like the environment variables file and import that. You'll still have to import the globals file whenever you want to use the variables inside of it, though. – Joshua Terrill May 23 '17 at 03:40
-
If it is a browser based typescript you can try window.test="something" – skvsree May 23 '17 at 03:41
-
3Duplicate of [this](https://stackoverflow.com/questions/38906359/create-a-global-variable-in-typescript) SO question. – Jeroen Heier May 23 '17 at 03:56
-
Why does this question (a duplicate of a much better SO entry) show up more and instead of the better one? The only reason I found the original is because @JeroenHeier made that comment. Just the way web search works I guess. :| – raddevus May 24 '19 at 18:57
4 Answers
17
I try to do that I get the error property ‘test’ does not exist on type ‘Global’.
Create a file globals.d.ts
with
interface Global {
test: string;
}
More
Declaration files : https://basarat.gitbook.io/typescript/docs/types/ambient/d.ts.html

basarat
- 261,912
- 58
- 460
- 511
-
-
1This should be at the root of your source folder, also I needed to restart my VSCode for it to work... – Rosdi Kasim Feb 11 '19 at 03:32
-
That link leads to 'page not found'. This seems to be the new one: https://basarat.gitbook.io/typescript/type-system/intro/d.ts – Tobias Wicker May 06 '22 at 10:46
8
in global.ts
export namespace Global {
export var test: string = 'Hello World!';
}
in your.ts
import { Global } from "./global";
console.log(Global.test)

nsnze
- 346
- 2
- 9
-
4This is not actually global, since the import is still necessary, the answer from @basarat is actually global. – Rosdi Kasim Feb 11 '19 at 03:44
2
Inside a global.d.ts definition file
type MyProfileGlobal = (name: string,age:number) => void
Config.tsx file
In React:
interface Window {
myProfileFun: MyProfileGlobal
}
In NodeJS:
declare module NodeJS {
interface Global {
myProfileFun: MyProfileGlobal
}
}
Now you declare the root variable (that will actually live on window or global)
declare const myProfileFun: MyProfileGlobal;
Use it elsewhere in code, with either[Add data]:
global/* or window */.myProfileFun("Sagar",28);
myProfileFun("Sagar",28);
Use it elsewhere in code, with either[Get data]:
global/* or window */.myProfileFun= function (name: string,age:number) {
console.log("Name: ", name);console.log("Age: ", name);
};

Sagar Mistry
- 131
- 11
0
The simplest way to declare a global variable in typescript:
// foo.ts
interface IData {
test: string;
}
declare global {
var someVar: IData;
}
Now, in any other file in the project:
// bar.ts
import 'foo'
somVar.test = 'Yes !!!!'

Nati Kamusher
- 533
- 5
- 9