Typescript - 如何避免未声明对象的编译错误

Geo*_*rge 2 javascript typescript ecmascript-6 webpack ecmascript-7

假设我在页面中插入了一个外部javascript,它将一些东西导出到外部作用域(即将它们绑定到窗口).

我想在我的打字稿项目中调用其中一些属性:

UndeclaredExportedProperty.aFunction()
Run Code Online (Sandbox Code Playgroud)

但是打字稿不允许我编译那个> <

我不想通过一种复杂的方式来声明模块的整个界面,因为我不知道它,坦率地说我并不关心它.它只是一个模块,我必须调用一次并"信任",当我调用它加载并包含正确的元素时(它非关键,所以不调用它不会让世界着火).

使用打字稿最简单的方法是什么?

编辑以响应标记为重复:

虽然这个问题的答案确实解决了我的问题,但问题是不同的(例如堆栈无法将其作为重复的建议)并且我觉得我正在尝试做什么Pokus的答案是更直接的一般解决方案而不是那个问题的答案

话虽这么说,如果管理员觉得这仍然是重复或简单的问题随时删除/关闭,因为我得到了我的答案.就个人而言,我会留下它,因为通过谷歌搜索的下一个人可能会更容易找到答案.

Pok*_*oku 5

您应该使用declare关键字:

declare var UndeclaredExportedProperty: any;
Run Code Online (Sandbox Code Playgroud)

官方文档在此处说明了这一点:https: //www.typescriptlang.org/docs/handbook/modules.html在使用其他JavaScript库一节中


归档时间:

查看次数:

391 次

最近记录:

8 年,8 月 前