10

Nach dem Lesen der Dokumentation von webkitSpeechRecognition (Spracherkennung in Javascript) habe ich versucht, es in Angular 2 zu implementieren.Angular2: Web Speech API - Spracherkennung

Aber als ich das tat:

const recognition = new webkitSpeechRecognition(); 

Typoskript diesen Fehler sagen:

[ts] Cannot find name 'webkitSpeechRecognition'. any 

Und wenn ich versuche webkitSpeechRecognition aus Fenster zu extrahieren:

if ('webkitSpeechRecognition' in window) { 

    console.log("Enters inside the condition"); // => It's printing 

    const { webkitSpeechRecognition } = window; // => TypeScript Error 
    const recognition = new webkitSpeechRecognition(); 
} 

Ob Ich kommentiere die letzten zwei Zeilen die console.log gedruckt wird, tritt in den Zustand ein! webkitSpeechRecognition existiert innerhalb des Fensters !! Aber wenn nicht die letzten beiden Zeilen Kommentar jetzt der Typoskript Fehler, ist dies:

[ts] Type 'Window' has no property 'webkitSpeechRecognition' and no string index signature. 
const webkitSpeechRecognition: any 

Wie kann ich eine neue Anerkennung in Angular 2 erstellen? Hat es jemand probiert?

Antwort

15

Schließlich löste ich eine Schnittstelle zu schaffen !!

export interface IWindow extends Window { 
    webkitSpeechRecognition: any; 
} 

Und:

const {webkitSpeechRecognition} : IWindow = <IWindow>window; 
const recognition = new webkitSpeechRecognition(); 
+1

Das hat mir sehr geholfen, danke. –

+0

Ich erhalte einen Fehler Export die Schnittstelle - Fenster in der Schnittstelle nicht finden können, Windo –

+0

Haben Sie eine funktionierende Demo? Oder zumindest Beispiele für die Interface- und Komponentendateien? –

0

Sie können das Problem durch

lösen
const speechRecognition = Window['webkitSpeechRecognition']; 

oder wenn Sie mit jQuery

const sr = $(window).get(0).webkitSpeechRecognition;