Angular2: API Web Speech - распознавание голоса

После прочтения документации webkitSpeechRecognition (распознавание голоса в Javascript) Я попытался реализовать его в Angular 2.

Но когда я это сделал:

const recognition = new webkitSpeechRecognition();

TypeScript произнесите эту ошибку:

[ts] Cannot find name 'webkitSpeechRecognition'. any

И если я попытаюсь извлечь webkitSpeechRecognition из окна :

if ('webkitSpeechRecognition' in window) {

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

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

Если я прокомментирую последние две строки, напечатанные console.log, вступает в условие! webkitSpeechRecognition существует внутри окно!! Но если не комментировать последние две строки, ошибка TypeScript теперь такова:

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

Как создать новое распознавание в Angular 2? Кто-нибудь пробовал это?

Ответ 1

Наконец, я решил создать интерфейс!!

export interface IWindow extends Window {
  webkitSpeechRecognition: any;
}

и

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

Ответ 2

Вы можете решить проблему с помощью

const speechRecognition = Window['webkitSpeechRecognition'];

Или, если вы используете jQuery

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