web-dev-qa-db-fra.com

Erreur de frappe TS2339: la propriété 'webkitURL' n'existe pas sur le type 'Window'

Utilisation de Angular 2 sur un projet qui est compilé avec TypeScript.

Obtenir cette erreur lors de la tentative de création d'une image blob:

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

son code est:

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

17
Dan Reil

erreur TS2339: la propriété 'webkitURL' n'existe pas sur le type 'Window'

Le lib.d.ts n'est pas livré avec des éléments spécifiques au navigateur. Cependant, vous pouvez facilement faire (window as any).webkitURL. Cela s'appelle une assertion de type .

Plus

Le commun (as any) L'assertion de type de style est un correctif fourni par alm: https://basarat.gitbooks.io/alm/content/features/quickfix.html

40
basarat

La solution qui fonctionne à partir de TypeScript 2.1.5:

interface Window {
    webkitURL?: any;
}

declare var window: Window;

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

Dans le code ci-dessus, nous avons déclaré une interface/forme pour Window qui aura éventuellement webkitURL défini, puis nous vérifions qu'il est défini.

5
Rudolf Olah