【问题标题】:Make TypeScript aware of loaded object让 TypeScript 知道加载的对象
【发布时间】:2012-12-26 09:26:11
【问题描述】:

我正在尝试使用 Google Analytics(分析)做一些工作。您加载的 google js 将 gapi 变量添加到 window dom 对象。

在编写 TypeScript 时,不会抱怨 gapi 不存在于 window 对象上。

我正在尝试检测 gapi 文件是否已加载,如果没有,则从我的脚本中动态加载它。

GAPI 没有我可以找到的类型定义,因此我试图弄清楚如何检查它是否已加载到 DOM 中。我已经能够通过 Chrome 上的控制台和 jQuery 检查它的(非)存在,所以两者都是一个选项。只是无法弄清楚如何在 TypeScript 中执行此操作,因为它根本不知道 gapi

如果您还没有使用过 Google Analytics js 库。它返回一个window.gapi 和一个gapi 参考供您在code/DOM 中使用

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    要让 TypeScript 知道您将使用的添加:

    interface Window {
        gapi: any;
    }
    

    或更短的:

    declare var gapi: any;
    

    您可以选择充实定义。

    这应该允许您使用 gapi,包括在您的检测脚本中:

    if (typeof gapi === 'undefined') ...
    

    【讨论】:

    • declare var gapi: any; 是我想要的。
    • declare var gapi: any; 不适用于 iOS 15 上的移动 iOS Safari。你知道 2021 年我们能做什么吗?
    猜你喜欢
    • 2021-01-04
    • 2023-01-12
    • 1970-01-01
    • 2012-01-13
    • 2019-08-29
    • 2019-03-13
    • 2018-04-09
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多