cordova - “窗口”类型上不存在属性“科尔多瓦”。: 离子
问题描述
在我的代码中,我收到了错误,因为Property 'cordova' does not exist on type 'Window'.
这是我收到错误的地方
var browserRef = window.cordova.InAppBrowser.open()
我也安装了,typings
但我仍然收到此错误。我该如何解决这个问题?
解决方案
这只是Typescript的抱怨,因为cordova
它不是window
对象定义的一部分。有几种方法可以避免该错误:
一种方法是声明window
type 的属性any
,如下所示:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
declare let window: any; // <--- Declare it like this
@Component({
selector: 'page-demo',
templateUrl: 'demo.html'
})
export class DemoPage {
constructor(public navCtrl: NavController, ...) { }
public yourMethod(): void {
var browserRef = window.cordova.InAppBrowser.open(); // <--- and use it like this
}
}
另一种方法是将window
对象转换为any
您要使用它的同一语句中的类型:
var browserRef = (<any>window).cordova.InAppBrowser.open();
// or
var browserRef = (window as any).cordova.InAppBrowser.open();
如果您不想使用,您还可以根据要调用的方法any
定义对象的类型:window
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
declare let window: {
cordova: {
InAppBrowser: {
open: () => {};
}
}
}
@Component({
selector: 'page-demo',
templateUrl: 'demo.html'
})
export class DemoPage {
constructor(public navCtrl: NavController, ...) { }
public yourMethod(): void {
var browserRef = window.cordova.InAppBrowser.open();
}
}
推荐阅读
- appdynamics - Appdynamics 监控 URL/页面可用性
- c++ - 为什么这个 C++ 程序不打印任何东西?
- r - 从目标字符串的开头提取字符串到字符
- javascript - 在 HTML 中看到的 Javascript 事件?
- mysql - 在哪里实现mysql连接以避免错误?
- node.js - 如何解决以下打字稿错误:“找不到命名空间'fastify'”?
- maven - Apache Maven 通过执行外部命令获取服务器密码
- python - Pytest:缺少如何开发基本 pytest 的逻辑
- python - 在命令提示符下安装软件包时出现 pip 错误
- java - 收集字符串到 LinkedHashMap
, 与字符的频率