Après avoir lu la documentation de webkitSpeechRecognition (reconnaissance vocale en Javascript), j'ai essayé de l'implémenter dans Angular 2 .
Mais quand j'ai fait ceci:
const recognition = new webkitSpeechRecognition();
TypeScript dit cette erreur:
[ts] Cannot find name 'webkitSpeechRecognition'. any
Et si j'essaie d'extraire webkitSpeechRecognition depuis la fenêtre :
if ('webkitSpeechRecognition' in window) { console.log("Enters inside the condition"); // => It's printing const { webkitSpeechRecognition } = window; // => TypeScript Error const recognition = new webkitSpeechRecognition(); }
Si je commente les deux dernières lignes, la console.log
est imprimée, entre dans la condition! WebkitSpeechRecognition existe à l'intérieur de la fenêtre! Mais si ce n'est pas le commentaire des deux dernières lignes, l'erreur TypeScript est la suivante:
[ts] Type 'Window' has no property 'webkitSpeechRecognition' and no string index signature. const webkitSpeechRecognition: any
Comment puis-je créer une nouvelle reconnaissance dans Angular 2? Est-ce que quelqu'un l'a essayé?
Finalement, j'ai résolu la création d'une interface !
export interface IWindow extends Window { webkitSpeechRecognition: any; }
Et:
const {webkitSpeechRecognition} : IWindow = <IWindow>window; const recognition = new webkitSpeechRecognition();