我有一个 Angular 应用程序,我需要在我的应用程序中使用 chrome
扩展对象。
所以我在我的组件中做了:
declare var chrome: any;
@Component({
templateUrl: './myComponent.component.html'
})
export class MyComponent implements AfterViewInit {
ngAfterViewInit(): void {
if(chrome)
//some code
}
}
如果我在 Google Chrome 浏览器
上使用此代码,它工作正常,我确实可以访问 chrome
对象。
问题是当我使用其他浏览器如 Firefox
时,控制台会抛出一个错误:
ReferenceError: chrome is not defined
如果对象不存在, typescript 似乎不会“声明”变量 chrome。所以我想知道如何处理这个?
谢谢!
最佳答案
你的声明没问题。
问题是,当 chrome
在运行时不存在时,您会得到一个异常,因为 JavaScript 中的变量不存在。这样做:
if ('chrome' in window) {
(...)
}
代替
if (chrome) {
(...)
}
然后就可以使用chrome
全局属性了,不存在时不会出现运行时错误
关于javascript - 如何声明 typescript 中可能不存在的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49536724/