为什么我不能在导出的TypeScript文件中将属性附加到Window?

时间:2016-05-24 22:50:44

标签: typescript typescript1.8

编译好:

interface Window {
    foo:boolean;
}

window.foo = true;

但是我把它添加到底部......

export class Bar {}

...我收到此错误Error TS2339: Property 'foo' does not exist on type 'Window'.

对此有何解释?

1 个答案:

答案 0 :(得分:2)

如果您有一个导出的对象,那么您的文件是模块并获得自己的范围,这意味着您的Window声明声明了一个新类型(在模块中命名空间)而不是促成全球界面Window

要更改全局范围内的内容,请使用declare global语法:

declare global {
  interface Window {
    foo:boolean;
  }
}