【问题标题】:browser.d.ts dependency for Edge web extension APIs browser.runtime.* in typescript打字稿中 Edge Web 扩展 API browser.runtime.* 的 browser.d.ts 依赖项
【发布时间】:2017-09-24 19:40:45
【问题描述】:

对于使用 typescript 开发的 chrome 扩展,我们需要在 typings 文件夹中有一个名为 chrome.d.ts 的定义文件,用于访问 chrome.runtime.* 或 chrome.tabs.* 等 Web 扩展 API。

对于边缘扩展,在 typescript 中开发,我们需要一个名为 browser.d.ts 的定义文件在类型文件夹中,用于访问 web 扩展 API,如 browser.runtime.*

我们如何使用节点包管理器(npm)下载此依赖项。 我在我的 background.ts 扩展名文件中添加了对该文件的引用,例如:

/// 参考路径="typings/browser/browser.d.ts"

【问题讨论】:

    标签: node.js typescript google-chrome-extension typescript-typings microsoft-edge-extension


    【解决方案1】:

    更新:

    Firefox 的浏览器 API 及其浏览器 polyfill 库可以使用类型。

    不幸的是,Edge 的浏览器 API 与 Firefox 的不同。 Edge 使用回调,而 Firefox 使用 Promises。这可能会也可能不会改变。

    见:

    【讨论】:

    【解决方案2】:

    由于您只需要 browser.d.ts 进行类型转换,因此此解决方案将起作用

    您可以添加:

    declare var browser: any;
    

    在您使用 browser.runtime 的文件顶部。

    【讨论】:

    • 您能详细说明一下吗?
    • microsoft edge extensions 允许像“browser.runtime.getUrl”这样的函数,当我们想要从 typescript 转换为 javascript 文件时 typescript 编译器会抛出一个像“browser undefined”这样的错误......因为我们没有t 为 'browser.d.ts' 定义了正确的类型,就像我们为 chrome 定义的那样,为了绕过上述错误,我们可以添加这一行 declare var browser: any;那么一切都会按预期进行
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 2020-11-18
    • 2016-12-07
    • 1970-01-01
    • 2019-09-18
    • 2021-08-10
    • 2019-05-04
    相关资源
    最近更新 更多