【问题标题】:serviceWorker can't find global variableserviceWorker 找不到全局变量
【发布时间】:2020-01-15 16:00:37
【问题描述】:

我有一个服务人员,但它找不到全局变量。我不知道为什么,有人可以解释为什么它看不到全局变量以及如何修复它?

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

【问题讨论】:

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


【解决方案1】:

这不是 TypeScript 问题(……嗯,不是直接问题),这是 JavaScript 问题。

declare 告诉 TS 编译器不要管它,并相信你该变量将在运行时可用。这是你和你的代码之间的契约。它确实为运行时提供任何东西。出于这个原因,declared 变量被称为“环境” - 它们在编译期间消失。

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

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

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

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

其中bundle.jstsc 的输出。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多