typescript1.8 - 为什么我在导出 TypeScript 文件时无法向 Window 添加属性?
这编译没问题:
interface Window {
foo:boolean;
}
window.foo = true;
但是当我把这个加到底部的那一刻……
export class Bar {}
...我收到这个错误 Error TS2339: 属性 'foo' 在类型 'Window' 上不存在。
这有什么解释?
答案#1
如果你有一个导出的对象,你的文件就是一个模块,并且拥有自己的作用域,这意味着你对Window的声明会声明一个新的类型(命名空间在你的模块内),而不是对全局接口Window进行贡献。
要在全局作用域中更改内容,请使用 declare global 语法:
declare global {
interface Window {
foo:boolean;
}
}
