打字稿错误TS2339:'Window'类型中不存在属性'webkitURL'

时间:2016-08-06 08:25:19

标签: javascript google-chrome typescript angular webkit

在使用typescript编译的项目中使用Angular 2.

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

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

代码是:

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

4 个答案:

答案 0 :(得分:35)

  

错误TS2339:“Window”

类型中不存在属性“webkitURL”

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

更多

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

答案 1 :(得分:3)

从TypeScript 2.1.5开始的解决方案:

interface Window {
    webkitURL?: any;
}

declare var window: Window;

if (window.webkitURL !== undefined) {
    console.log(window.webkitURL);
}

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

答案 2 :(得分:-1)

这种方法对我有用。我当前的打字稿版本是2.0.3

将其添加到课程

之外
 interface Window { logged_user: Object }

当您需要使用此属性时,只需使用它

window.logged_user = {};//your data

答案 3 :(得分:-2)

解决方案1:

interface Window {
  webkitURL: any;
}

declare var window: Window;

 //Now typescript will not throw any error on window.webkitURL

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