编译好:
interface Window {
foo:boolean;
}
window.foo = true;
但是我把它添加到底部......
export class Bar {}
...我收到此错误Error TS2339: Property 'foo' does not exist on type 'Window'.
对此有何解释?
答案 0 :(得分:2)
如果您有一个导出的对象,那么您的文件是模块并获得自己的范围,这意味着您的Window
声明声明了一个新类型(在模块中命名空间)而不是促成全球界面Window
。
要更改全局范围内的内容,请使用declare global
语法:
declare global {
interface Window {
foo:boolean;
}
}