Typescript错误TS2339:属性'webkitURL'在类型'窗口'

Typescript error TS2339: Property 'webkitURL' does not exist on type 'Window'

本文关键字:webkitURL 类型 窗口 错误 属性 Typescript TS2339      更新时间:2023-09-26

在使用typescript编译的项目上使用Angular 2。

尝试创建blob映像时出现此错误:

error TS2339: Property 'webkitURL' does not exist on type 'Window'

ts代码为:

public url = window.URL || window.webkitURL; this.photo = this.url.createObjectURL( res );

错误TS2339:类型"Window"上不存在属性"webkitURL">

lib.d.ts不附带特定于浏览器的内容。但是,您可以轻松地执行(window as any).webkitURL。这被称为类型断言。

更多

  • lib.d.ts上的文档
  • 快速迁移提示

常见的(as any)样式类型断言是alm提供的快速修复:https://basarat.gitbooks.io/alm/content/features/quickfix.html

TypeScript 2.1.5:的解决方案

interface Window {
    webkitURL?: any;
}
declare var window: Window;
if (window.webkitURL !== undefined) {
    console.log(window.webkitURL);
}

在上面的代码中,我们为Window声明了一个接口/形状,它可以选择定义webkitURL,然后我们进行检查以确保它被定义。

这种方法对我很有效。我目前的typescript版本是2.0.3

将此添加到类之外

 interface Window { logged_user: Object }

当你需要使用这个属性时,只需使用它

window.logged_user = {};//your data

解决方案1:

interface Window {
  webkitURL: any;
}
declare var window: Window;
 //Now typescript will not throw any error on window.webkitURL

解决方案2:(<any>window).webkitURL未抛出错误