Javascript 在类型脚本中共享变量,就像在JS中一样

Javascript 在类型脚本中共享变量,就像在JS中一样,javascript,html,typescript,Javascript,Html,Typescript,在JS中,我能够连接HTML中的脚本。假设我有两个脚本first.js和second.js,所以我可以这样做: <script src=".../first.js"></script> <script src=".../second.js"></script> 然后我可以在second.js 如何通过TypeScript将这些脚本保持为单独的文件来获得这样的结果?为了避免全局性,您可以将共享部分提取到单独的模块中: 共享的 const MY_

在JS中,我能够连接HTML中的脚本。假设我有两个脚本
first.js
second.js
,所以我可以这样做:

<script src=".../first.js"></script>
<script src=".../second.js"></script>

然后我可以在
second.js

如何通过TypeScript将这些脚本保持为单独的文件来获得这样的结果?

为了避免全局性,您可以将共享部分提取到单独的模块中:

共享的

const MY_VAR = 1337;

export { MY_VAR }
并在其他脚本之一中使用它:

第一,ts:

import { MY_VAR } from './shared';

console.log(MY_VAR);

您需要在TypeScript文件中声明它,以便编译器知道它存在


声明变量x:string;//变量名应该与JS文件中的相同。

正如注释中指出的,您不希望依赖隐式声明的共享变量。这可能会产生一些令人讨厌的副作用,而且通常很难调试。然而,在有些情况下,没有其他办法。您可以使用
globalThis
对象在不同模块之间共享变量,因为
globalThis
到处都是相同的对象

//模块A
globalThis.myVar=17;
//模块B
console.log(globalThis.myVar);

您可以在这里了解有关
globalThis
的更多信息:

我不能说这在技术上是否可行,但是如果您依赖于另一个任意JavaScript文件的本地变量,那么您的设计可能需要一些重新工作。一般来说,这些文件应该是自包含的(具有适当模块定义的框架除外,
export
s等)