我需要在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>
打字稿代码是:
if(window.standalone !== undefined) {
console.log('standalone');
}
任何人都能看到我做错了什么?
答案 0 :(得分:3)
全局变量应该在TypeScript中声明为全局变量:
declare var standalone: boolean;
为了引用window
属性,还应该指定全局:
declare global {
interface Window {
standalone: boolean;
}
}
如果全局变量被使用了一次或多次并且无法从类型检查中受益,则可以有意地跳过类型:
if((<any>window).standalone !== undefined) ...
或者:
if(window['standalone'] !== undefined) ...