Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';是否将属性附加到导出的TypeScript文件中的窗口?_Typescript_Typescript1.8 - Fatal编程技术网

为什么可以';是否将属性附加到导出的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;
  }
}