首页 > 解决方案 > 需要在 Typescript 中使用第三方 JS 对象

问题描述

我正在使用 Cookiebot 库在我的网站中弹出 cookie 同意弹出窗口,我使用脚本标签添加了它(而不是使用 npm,这是目前唯一的方法)。请注意,我的大部分代码都是 TypeScript。我需要在 cookiebot 对象中存在的 resize 事件中调用一些函数,

有没有办法访问 Cookiebot 对象或它的功能从 TS.

为此,我需要从 TS 代码访问 cookiebot 对象。如果我尝试通过窗口对象访问 cookiebot, window.Cookiebot.show(); 它会给我错误(属性 Cookiebot 在类型窗口上不存在),我不能像这样直接使用它: Cookiebot.show()它给出(找不到对象 Cookiebot)

window.addEventListener('resize',function (e){
    if(getInitialWindowWidth != window.innerWidth) {
        doAdjustWidth();
        window.Cookiebot.show();
    }
}, false);

标签: javascripttypescript

解决方案


您可以使用类型声明。对于最流行的缺少类型的 js 库,可以通过 npm https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html安装它们

您也可以自己声明缺少的类型,如下所示:

declare namespace cookiebot {
  class Cookiebot {
    show(): void;
  }
}

declare const Cookiebot: cookiebot.Cookiebot;

推荐阅读