javascript - 需要在 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);
解决方案
您可以使用类型声明。对于最流行的缺少类型的 js 库,可以通过 npm https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html安装它们
您也可以自己声明缺少的类型,如下所示:
declare namespace cookiebot {
class Cookiebot {
show(): void;
}
}
declare const Cookiebot: cookiebot.Cookiebot;
推荐阅读
- java - Maven 无法识别 Java 项目中的某些 Kotlin 类
- python - `getwch` 返回的键码是什么?
- java - 如何使用 contextClick() 单击右键单击后显示的选项?
- postgresql - 如何在 PostgreSQL 中合并表?
- cucumber - Karate test framework: Only one assert using Examples
- python - 消息框 tkinter 的问题
- angular - Mat-Dialog 中的 Mat-Table 未更新
- bash - 使用 shell 脚本将输出划分为多个变量
- c++ - 为双向量保留空间
- qt - Qt mdi 窗口不接收鼠标事件