我有一个有角度的应用程序,我需要在我的应用程序中使用chrome
扩展对象。
所以我在我的组件中做了:
declare var chrome: any;
@Component({
templateUrl: './myComponent.component.html'
})
export class MyComponent implements AfterViewInit {
ngAfterViewInit(): void {
if(chrome)
//some code
}
}
如果我在Google Chrome browser
上使用此代码,它可以正常工作,我可以访问chrome
对象。
问题是当我使用其他浏览器如Firefox
时,控制台会抛出错误:
ReferenceError:未定义chrome
似乎打字稿没有"声明"如果对象不存在,则为变量chrome。所以我想知道如何处理这个问题?
谢谢!
答案 0 :(得分:1)
你的声明没问题。
问题在于,当运行时不存在chrome
时,会出现异常,因为JavaScript中的变量不存在。这样做:
if ('chrome' in window) {
(...)
}
而不是
if (chrome) {
(...)
}
然后你可以使用chrome
全局属性,当它不存在时没有运行时错误