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:プロパティ 'webkitURL'はタイプ 'Window'に存在しません
Lib.d.tsには、ブラウザ固有のものは付属していません。ただし、(window as any).webkitURL
。これは type assertion と呼ばれます。
一般的な(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);
}
上記のコードでは、webkitURLがオプションで定義されるWindowのインターフェイス/シェイプを宣言し、それが定義されていることを確認するためのチェックを行います。