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

标签 javascript typescript webpack ecmascript-6 ecmascript-2016

假设我在页面中插入了一个外部 javascript 并将一些内容导出到外部范围(即将它们绑定(bind)到窗口)。

我想在我的 typescript 项目中调用其中一些属性:

UndeclaredExportedProperty.aFunction()

但是 typescript 不允许我编译那个><

我不想通过复杂的方式来声明模块的整个接口(interface),因为我不知道它,坦率地说我不关心它。它只是一个我必须调用一次的模块,并且“相信”在我调用它时它已加载并包含正确的元素(它不是关键的,所以不调用它不会让世界着火)。

使用 typescript 执行此操作的最简单方法是什么?

编辑以响应标记为重复:

虽然那个问题的答案确实解决了我的问题,但问题是不同的(例如,stack 无法将其作为重复建议找到)而且我觉得对于我正在尝试做的事情,Pokus 的答案是更多比那个问题的答案直接和通用的解决方案

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

最佳答案

你应该为此使用 declare 关键字:

declare var UndeclaredExportedProperty: any;

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

关于javascript - Typescript - 如何避免未声明对象的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101308/

相关文章:

javascript - 将 JavaScript 代码放在单独的文件中不起作用

typescript - OpenAI 速率限制 429 Bug

javascript - 在加载时调整 TextArea 的大小

javascript - 如何确保输入不为空?

reactjs - this.state 在渲染 React 和 Typescript 中为 null

typescript - 如何使用源映射调试模块化 TypeScript?

node.js - 如何为第 3 方库将 ES6 转换为 ES5?

reactjs - Webpack dist 文件夹未在项目文件夹中创建?

reactjs - 具有 PostCSS/CSS 模块的全局实用程序类

JavaScript:如何设置一个日期,使其在世界各地看起来都一样?