向typescript中的javascript对象添加属性时没有错误
我发现这篇文章非常有趣,但当我尝试扩展像向typescript中的javascript对象添加属性时没有错误,javascript,typescript,Javascript,Typescript,我发现这篇文章非常有趣,但当我尝试扩展像window这样的全局变量时,它并没有帮助我 测试.ts window.test = {}; //ERROR: Property 'test' does not exist on type 'Window'. (function (test) { //do stuff } (window.test)); //Build: Property 'test' does not exist on type 'Window' 错误消息: 错误:类型“Window
window
这样的全局变量时,它并没有帮助我
测试.ts
window.test = {}; //ERROR: Property 'test' does not exist on type 'Window'.
(function (test)
{
//do stuff
} (window.test)); //Build: Property 'test' does not exist on type 'Window'
错误消息:
错误:类型“Window”上不存在属性“test”
我如何解决这个问题?它被称为:
()
正如您所见,您需要在
窗口
接口中声明新方法,这样当您添加实际实现时,编译器就不会抱怨了。是不是JS中有类似于接口的东西,还是只是在typescript中?@MahmoudZakal接口
是typescript的东西:,由于现在javascriptAs中不需要这样做,如果您使用TS编译器使用checkJs
选项进行类型检查,那么在JS中就需要这样做。在这种情况下,编译器会抱怨window.test=…
,但是window[“test”]=…
@Coderer也可以,即使您将test
添加到窗口接口中?也许我误解了,但在普通Javascript中没有接口。马哈茂德的问题是如何告诉编译器在Javascript中的窗口上应该有.test
属性;这就是我的评论。
interface Window {
test(): void;
}
window.test = function() {
// do what ever
}