如何在HTML中使用全局变量并在typescript中使用它?
我需要在index.html文件中定义一个变量,并在angular4/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
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) ...