TL;DR Just write export {}
in the outermost scope of your files.
At some point there needs to be a semantic disambiguation for whether a file should be treated as a module (and have its own scope) or a script (and share the global scope with other scripts).
In the browser, this is easy - you should be able to use a <script type="module">
tag and you'll be able to use modules.
But what about any other place that utilizes JavaScript? Unfortunately there isn't a standard way at this point to make that distinction.
The way that TypeScript decided to tackle the problem was to simply state that a module is any file which contains an import or export.
So if your file doesn't have any sort of top-level import
or export
statements, then you'll occasionally see issues with global declarations interfering with each other.
To get around this, you can simple have an export
statement that exports nothing. In other words, just write
export {};
somewhere at the top-level of your file.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…