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

Javascript Typescript-如何避免未声明对象的编译错误,javascript,typescript,webpack,ecmascript-6,ecmascript-2016,Javascript,Typescript,Webpack,Ecmascript 6,Ecmascript 2016,假设我在页面中插入了一个外部javascript,它将一些内容导出到外部作用域(即将它们绑定到窗口) 我想在我的typescript项目中调用其中一些属性,如下所示: UndeclaredExportedProperty.aFunction() 但是typescript不允许我编译>您应该使用declare关键字: declare var UndeclaredExportedProperty: any; 官方文件在这里指出: 在节中 与其他JavaScript库一起工作好的,这里显然回答了这

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

我想在我的typescript项目中调用其中一些属性,如下所示:

UndeclaredExportedProperty.aFunction()

但是typescript不允许我编译>您应该使用declare关键字:

declare var UndeclaredExportedProperty: any;
官方文件在这里指出: 在节中
与其他JavaScript库一起工作

好的,这里显然回答了这个问题:

我不能将我自己的帖子标记为重复,所以我将把它留在这里,然后关闭该线程,也许下一个谷歌搜索的可怜的草皮,如果不点击该链接,就会偶然发现这一点

显然,可以使用数组选择操作符(o.o?)查询对象(例如窗口)的属性,因此您只需执行以下操作:

window["UndeclaredExportedProperty"].aFunction()
试一试


这将告诉编译器暂时将
窗口
实例视为非类型化,并允许您对其执行任何操作。

哦,这似乎也可行,而且比我找到的答案更直观,因此我想我会将其标记为正确。非常感谢:)酷,如果你发现它有用,请标记为正确答案:)可能重复@Simon Groenewolt,而该问题的答案确实解决了我的问题。问题不同(例如stack无法将其作为重复建议找到)我觉得我要做的是,Pokus的答案比问题中的答案更直截了当,更一般。可能重复@George check,收回我的投票:-)根据正式的typescript文档,你应该使用declare关键字:部分与其他JavaScript库一起工作。请参阅我的答案,了解代码ex。
(window as any).UndeclaredExportedProperty.aFunction()