这个小代码片段来自一个示例,演示了 Angular 中Web Speech API的使用,它让我很难理解它。
我一直在谷歌上搜索 TypeScript 如何定义和处理接口,但找不到类似样式的语法和解释。
interface IWindow extends Window {
webkitSpeechRecognition: any;
SpeechRecognition: any;
}
...
const { webkitSpeechRecognition }: IWindow = <IWindow>window; // ??
const speechRecognition = new webkitSpeechRecognition(); // ??
...
这是我无法解释的最后两行。我当然看到 SpeechRecognition 以某种方式变成了 SpeechRecognition 接口的结果,但我不明白它是如何发生的,我想知道这是否是一个很好的实现,或者有更漂亮的方法来做到这一点。
而且我还想知道,这如何解决 SpeechRecognition 与 webkitSpeechRecognition 的供应商前缀属性问题,因为例如Mozilla 建议对 SpeechRecognition进行一些不同的定义:
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;