如果您使用typescript编写,并且未使用模块,则可以扩展全局Window对象.例如,这编译:
interface Window {
myCounter: number;
}
window.myCounter = window.myCounter || 0;
++window.myCounter;
function outputLoadingDetails() {
console.log(`myCounter= ${window.myCounter}`)
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我前缀功能outputLoadingDetails有export,看来我这个文件转换成一个模块.我现在访问时遇到编译器错误window.myCounter.
interface Window {
myCounter: number;
}
window.myCounter = window.myCounter || 0; // ERROR: property 'MyCounter' does not exist on type `Window`
++window.myCounter; // ERROR: property 'MyCounter' does not exist on type `Window`
export function outputLoadingDetails() {
console.log(`myCounter= ${window.myCounter}`) // ERROR: property 'MyCounter' does not exist on type `Window`
}
Run Code Online (Sandbox Code Playgroud)
看来我的接口声明不再扩展全局Window类型. …
typescript ×1