为什么可以';是否将属性附加到导出的TypeScript文件中的窗口?
这很好:为什么可以';是否将属性附加到导出的TypeScript文件中的窗口?,typescript,typescript1.8,Typescript,Typescript1.8,这很好: interface Window { foo:boolean; } window.foo = true; 但是当我把这个放在底部的时候 export class Bar {} …我收到此错误错误TS2339:类型“Window”上不存在属性“foo”。 对此的解释是什么?如果您有一个导出的对象,那么您的文件是一个模块,并且有自己的作用域,这意味着您的窗口声明声明了一个新类型(模块内部的名称空间),而不是对全局接口窗口做出贡献 要更改全局范围内的内容,请使用declare
interface Window {
foo:boolean;
}
window.foo = true;
但是当我把这个放在底部的时候
export class Bar {}
…我收到此错误错误TS2339:类型“Window”上不存在属性“foo”。
对此的解释是什么?如果您有一个导出的对象,那么您的文件是一个模块,并且有自己的作用域,这意味着您的
窗口声明声明了一个新类型(模块内部的名称空间),而不是对全局接口窗口做出贡献
要更改全局范围内的内容,请使用declare global
语法:
declare global {
interface Window {
foo:boolean;
}
}