serviceWorker找不到全局变量

时间:2019-09-13 19:25:18

标签: typescript service-worker angular-service-worker

我有一个服务人员,它找不到全局变量。我不确定为什么,有人可以解释为什么看不到全局变量以及如何解决它吗?

declare var myGlobalVar: Function;

const myFunction = async() {
  //doing stuff
  //calling myGlobalVar which give me following error
}

运行serviceWorker时出现错误:

:Uncaught (in promise) ReferenceError: myGlobalVar is not defined

1 个答案:

答案 0 :(得分:1)

这不是TypeScript问题(...,不是直接的),这是JavaScript问题。

declare告诉TS编译器进行调试,并相信您该变量将在运行时可用。这是您与代码之间的合同。它不会为运行时提供任何内容。由于这个原因,declare d个变量被称为“环境变量”,它们在编译过程中消失了。

有关Ambient Declarations的更多信息,请参见此。

在JavaScript方面,您缺少myFunction的声明。例如,

<script type="text/javascript">
  function myGlobalVar() {
    // whatever
  }
</script>

<script src="../bundle.js"></script>

其中bundle.jstsc的输出。