Typescript - 如何避免未声明对象的编译错误
Typescript - How to avoid compilation error from undeclared objects
假设我在页面中插入了一个外部 javascript 并将一些内容导出到外部范围(即将它们绑定到 window)。
我想在我的打字稿项目中调用其中一些属性:
UndeclaredExportedProperty.aFunction()
但是打字稿不允许我编译那个><
我不想通过复杂的方式来声明模块的整个接口,因为我不知道它,坦率地说我不关心它。它只是一个我必须调用一次的模块,"trust" 在我调用它时它已加载并包含正确的元素(它不是关键的,所以不调用它不会让世界着火)。
使用 typescript 执行此操作的最简单方法是什么?
编辑以响应标记为重复:
虽然那个问题的答案确实解决了我的问题,但问题是不同的(例如堆栈无法将其作为重复建议找到)而且我觉得我正在尝试做的事情 Pokus 答案是比那个问题的答案更直接和通用的解决方案
话虽这么说,如果管理员觉得这仍然是重复的或简单的问题,请随时 delete/close,因为我已经得到了答案。就个人而言,我会保留它,因为下一个通过 google 左右搜索的人可能会更容易找到答案。
你应该为此使用 declare 关键字:
declare var UndeclaredExportedProperty: any;
官方文档在这里说明了这一点:
https://www.typescriptlang.org/docs/handbook/modules.html 在部分
与其他 JavaScript 图书馆合作
好的,这个问题显然在这里得到了回答:
How do you explicitly set a new property on `window` in TypeScript?
我无法将我自己的 post 标记为重复项,所以我将把它留在此处并关闭线程,也许下一个可怜的草皮 google 搜索而不是单击那个 link 会偶然发现这个。
显然可以使用数组选择运算符 (o.o?) 查询对象的属性(例如 window),因此您只需执行以下操作:
window["UndeclaredExportedProperty"].aFunction()
尝试
(window as any).UndeclaredExportedProperty.aFunction()
这将告诉编译器暂时将 Window
实例视为无类型实例,并允许您对其执行任何操作。
假设我在页面中插入了一个外部 javascript 并将一些内容导出到外部范围(即将它们绑定到 window)。
我想在我的打字稿项目中调用其中一些属性:
UndeclaredExportedProperty.aFunction()
但是打字稿不允许我编译那个><
我不想通过复杂的方式来声明模块的整个接口,因为我不知道它,坦率地说我不关心它。它只是一个我必须调用一次的模块,"trust" 在我调用它时它已加载并包含正确的元素(它不是关键的,所以不调用它不会让世界着火)。
使用 typescript 执行此操作的最简单方法是什么?
编辑以响应标记为重复:
虽然那个问题的答案确实解决了我的问题,但问题是不同的(例如堆栈无法将其作为重复建议找到)而且我觉得我正在尝试做的事情 Pokus 答案是比那个问题的答案更直接和通用的解决方案
话虽这么说,如果管理员觉得这仍然是重复的或简单的问题,请随时 delete/close,因为我已经得到了答案。就个人而言,我会保留它,因为下一个通过 google 左右搜索的人可能会更容易找到答案。
你应该为此使用 declare 关键字:
declare var UndeclaredExportedProperty: any;
官方文档在这里说明了这一点: https://www.typescriptlang.org/docs/handbook/modules.html 在部分 与其他 JavaScript 图书馆合作
好的,这个问题显然在这里得到了回答:
How do you explicitly set a new property on `window` in TypeScript?
我无法将我自己的 post 标记为重复项,所以我将把它留在此处并关闭线程,也许下一个可怜的草皮 google 搜索而不是单击那个 link 会偶然发现这个。
显然可以使用数组选择运算符 (o.o?) 查询对象的属性(例如 window),因此您只需执行以下操作:
window["UndeclaredExportedProperty"].aFunction()
尝试
(window as any).UndeclaredExportedProperty.aFunction()
这将告诉编译器暂时将 Window
实例视为无类型实例,并允许您对其执行任何操作。