web-dev-qa-db-ja.com

タイプスクリプトエラーTS2339:プロパティ 'webkitURL'はタイプ 'Window'に存在しません

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 );

17
Dan Reil

エラーTS2339:プロパティ 'webkitURL'はタイプ 'Window'に存在しません

Lib.d.tsには、ブラウザ固有のものは付属していません。ただし、(window as any).webkitURL。これは type assertion と呼ばれます。

もっと

一般的な(as any)スタイルタイプアサーションは、almが提供するクイックフィックスです。 https://basarat.gitbooks.io/alm/content/features/quickfix.html

40
basarat

TypeScript 2.1.5の時点で機能するソリューション:

interface Window {
    webkitURL?: any;
}

declare var window: Window;

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

上記のコードでは、webkitURLがオプションで定義されるWindowのインターフェイス/シェイプを宣言し、それが定義されていることを確認するためのチェックを行います。

5
Rudolf Olah