在使用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 );
答案 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错误