"declare global{ interface Window{ analytics: any; } }"在angular/Typescript中是什么意思?
What does "declare global{ interface Window{ analytics: any; } }" mean in angular/Typescript?
我有这段代码 (from here),我想了解它的作用:
declare global {
interface Window { analytics: any; }
}
我知道 declare global
的意思。
而且我从this question那里看到了interface
的意思。
我知道window object是什么意思。
我不明白上面的代码是什么意思。如果我错了,请更正。该代码意味着分析变量现在被识别为任何类型的全局对象。此外,它还具有您可以访问的 window 属性,如 interface Window
.
所示
还有我们为什么declare global{ /**variable being declared gloabal here.*/ }
。为什么我们要使用这种语义来声明一个全局变量。为什么变量放在大括号内而不是 var goat
?
这就是 TypeScript 的 Global augmentation, it's a special syntax/keyword which allows to declare global variables. These declarations get merged with the ECMAScript definition files thanks to the declaration merging 能力。
我有这段代码 (from here),我想了解它的作用:
declare global {
interface Window { analytics: any; }
}
我知道 declare global
的意思。
而且我从this question那里看到了interface
的意思。
我知道window object是什么意思。
我不明白上面的代码是什么意思。如果我错了,请更正。该代码意味着分析变量现在被识别为任何类型的全局对象。此外,它还具有您可以访问的 window 属性,如 interface Window
.
还有我们为什么declare global{ /**variable being declared gloabal here.*/ }
。为什么我们要使用这种语义来声明一个全局变量。为什么变量放在大括号内而不是 var goat
?
这就是 TypeScript 的 Global augmentation, it's a special syntax/keyword which allows to declare global variables. These declarations get merged with the ECMAScript definition files thanks to the declaration merging 能力。