如何在HTML中使用全局变量并在typescript中使用它?

如何在HTML中使用全局变量并在typescript中使用它?,html,angular,typescript,Html,Angular,Typescript,我需要在index.html文件中定义一个变量,并在angular4/typescript代码中使用它,结果出现编译错误 我的编译错误是: Error:(109, 27) TS2339: Property 'standalone' does not exist on type 'Window'. HTML中的变量定义为: var standalone='true' System.import('app').catch(function (err) { console.e

我需要在index.html文件中定义一个变量,并在angular4/typescript代码中使用它,结果出现编译错误

我的编译错误是:

Error:(109, 27) TS2339: Property 'standalone' does not exist on type 'Window'.
HTML中的变量定义为: var standalone='true'

    System.import('app').catch(function (err) {
        console.error(err);
    });
</script>

有人看到我做错了什么吗?

全局变量应该在TypeScript中声明为全局变量:

declare var standalone: boolean;
要引用
窗口
属性,还应指定一个全局变量:

declare global {
  interface Window {
    standalone: boolean;
  }
}
如果全局变量被使用一次或多次,并且不能从类型检查中获益,则可以有意跳过类型:

if((<any>window).standalone !== undefined) ...

我在我的一个项目中做了类似的事情,我发现你不能像那样简单地访问窗口对象。检查一下这个简单的(ish)替代方案:我很惊讶这涉及到了这一点。有人会认为这是一件很平常的事情。但是谢谢
if((窗口如有).standalone!==undefined){console.log('standalone');}
谢谢你最后的评论是正确的,它可以工作。我怎样才能相信你的回答?
if((<any>window).standalone !== undefined) ...
if(window['standalone'] !== undefined) ...