mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-06-04 19:42:46 +08:00
webspeechapi: Require typescript@2.2 and rely on lib.dom.d.ts types (#20239)
This commit is contained in:
71
types/webspeechapi/index.d.ts
vendored
71
types/webspeechapi/index.d.ts
vendored
@@ -2,6 +2,7 @@
|
||||
// Project: https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
|
||||
// Definitions by: SaschaNaz <https://github.com/saschanaz>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
// Spec version: 19 October 2012
|
||||
// Errata version: 6 June 2014
|
||||
@@ -92,73 +93,3 @@ interface SpeechGrammarListStatic {
|
||||
}
|
||||
declare var SpeechGrammarList: SpeechGrammarListStatic;
|
||||
declare var webkitSpeechGrammarList: SpeechGrammarListStatic;
|
||||
|
||||
/* Errata 08 */
|
||||
interface SpeechSynthesis extends EventTarget {
|
||||
pending: boolean;
|
||||
speaking: boolean;
|
||||
paused: boolean;
|
||||
|
||||
/* Errata 11 */
|
||||
onvoiceschanged: (ev: Event) => any;
|
||||
|
||||
speak(utterance: SpeechSynthesisUtterance): void;
|
||||
cancel(): void;
|
||||
pause(): void;
|
||||
resume(): void;
|
||||
/* Errata 05 */
|
||||
getVoices(): SpeechSynthesisVoice[];
|
||||
}
|
||||
|
||||
interface SpeechSynthesisGetter {
|
||||
speechSynthesis: SpeechSynthesis;
|
||||
}
|
||||
interface Window extends SpeechSynthesisGetter {
|
||||
}
|
||||
declare var speechSynthesis: SpeechSynthesis;
|
||||
|
||||
interface SpeechSynthesisUtterance extends EventTarget {
|
||||
text: string;
|
||||
lang: string;
|
||||
/* Errata 07 */
|
||||
voice: SpeechSynthesisVoice;
|
||||
volume: number;
|
||||
rate: number;
|
||||
pitch: number;
|
||||
|
||||
onstart: (ev: SpeechSynthesisEvent) => any;
|
||||
onend: (ev: SpeechSynthesisEvent) => any;
|
||||
/* Errata 12 */
|
||||
onerror: (ev: SpeechSynthesisErrorEvent) => any;
|
||||
onpause: (ev: SpeechSynthesisEvent) => any;
|
||||
onresume: (ev: SpeechSynthesisEvent) => any;
|
||||
onmark: (ev: SpeechSynthesisEvent) => any;
|
||||
onboundary: (ev: SpeechSynthesisEvent) => any;
|
||||
}
|
||||
interface SpeechSynthesisUtteranceStatic {
|
||||
prototype: SpeechSynthesisUtterance;
|
||||
new (): SpeechSynthesisUtterance;
|
||||
new (text: string): SpeechSynthesisUtterance;
|
||||
}
|
||||
declare var SpeechSynthesisUtterance: SpeechSynthesisUtteranceStatic;
|
||||
|
||||
interface SpeechSynthesisEvent extends Event {
|
||||
/* Errata 08 */
|
||||
utterance: SpeechSynthesisUtterance;
|
||||
charIndex: number;
|
||||
elapsedTime: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
/* Errata 12 */
|
||||
interface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {
|
||||
error: string;
|
||||
}
|
||||
|
||||
interface SpeechSynthesisVoice {
|
||||
voiceURI: string;
|
||||
name: string;
|
||||
lang: string;
|
||||
localService: boolean;
|
||||
default: boolean;
|
||||
}
|
||||
8
types/webspeechapi/tslint.json
Normal file
8
types/webspeechapi/tslint.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
// TODOs
|
||||
"dt-header": false,
|
||||
"prefer-method-signature": false
|
||||
}
|
||||
}
|
||||
@@ -7,33 +7,33 @@ https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#examples-recogniti
|
||||
|
||||
// Example 1
|
||||
declare var q: HTMLInputElement;
|
||||
() => {
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.onresult = function (event) {
|
||||
{
|
||||
const recognition = new SpeechRecognition();
|
||||
recognition.onresult = event => {
|
||||
if (event.results.length > 0) {
|
||||
q.value = event.results[0][0].transcript;
|
||||
q.form.submit();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Example 2
|
||||
declare var select: HTMLSelectElement;
|
||||
() => {
|
||||
var recognition = new SpeechRecognition();
|
||||
declare const select: HTMLSelectElement;
|
||||
{
|
||||
const recognition = new SpeechRecognition();
|
||||
recognition.maxAlternatives = 10;
|
||||
recognition.onresult = function (event) {
|
||||
recognition.onresult = event => {
|
||||
if (event.results.length > 0) {
|
||||
var result = event.results[0];
|
||||
for (var i = 0; i < result.length; ++i) {
|
||||
var text = result[i].transcript;
|
||||
const result = event.results[0];
|
||||
for (let i = 0; i < result.length; ++i) {
|
||||
const text = result[i].transcript;
|
||||
select.options[i] = new Option(text, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function start() {
|
||||
let x: number = select.options.length;
|
||||
const x: number = select.options.length;
|
||||
recognition.start();
|
||||
}
|
||||
}
|
||||
@@ -41,25 +41,25 @@ declare var select: HTMLSelectElement;
|
||||
// Example 3
|
||||
/*
|
||||
This example has some changes from the one in spec.
|
||||
`var i = resultIndex` -> `var i = event.resultIndex` (Recorded as Errata 16)
|
||||
`const i = resultIndex` -> `const i = event.resultIndex` (Recorded as Errata 16)
|
||||
`event.results.final` -> `event.results[i].isFinal` (Recorded as Errata 02)
|
||||
*/
|
||||
declare var textarea: HTMLTextAreaElement;
|
||||
declare var button: HTMLButtonElement;
|
||||
() => {
|
||||
var recognizing: boolean;
|
||||
var recognition = new SpeechRecognition();
|
||||
declare const textarea: HTMLTextAreaElement;
|
||||
declare const button: HTMLButtonElement;
|
||||
{
|
||||
let recognizing: boolean;
|
||||
const recognition = new SpeechRecognition();
|
||||
recognition.continuous = true;
|
||||
reset();
|
||||
recognition.onend = reset;
|
||||
|
||||
recognition.onresult = function (event) {
|
||||
for (var i = event.resultIndex; i < event.results.length; ++i) {
|
||||
recognition.onresult = event => {
|
||||
for (let i = event.resultIndex; i < event.results.length; ++i) {
|
||||
if (event.results[i].isFinal) {
|
||||
textarea.value += event.results[i][0].transcript;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function reset() {
|
||||
recognizing = false;
|
||||
@@ -84,21 +84,21 @@ This example has a change from the one in spec.
|
||||
`recognition.interim = true;` -> `recognition.interimResults = true;` (Recorded as Errata 01)
|
||||
`event.results[i].final` -> `event.results[i].isFinal` (Recorded as Errata 02)
|
||||
*/
|
||||
declare var button: HTMLButtonElement;
|
||||
declare var final_span: HTMLSpanElement;
|
||||
declare var interim_span: HTMLSpanElement;
|
||||
declare const final_span: HTMLSpanElement;
|
||||
declare const interim_span: HTMLSpanElement;
|
||||
() => {
|
||||
var recognizing: boolean;
|
||||
var recognition = new SpeechRecognition();
|
||||
let recognizing: boolean;
|
||||
const recognition = new SpeechRecognition();
|
||||
recognition.continuous = true;
|
||||
recognition.interimResults = true;
|
||||
reset();
|
||||
recognition.onend = reset;
|
||||
|
||||
recognition.onresult = function (event) {
|
||||
var final = "";
|
||||
var interim = "";
|
||||
for (var i = 0; i < event.results.length; ++i) {
|
||||
recognition.onresult = event => {
|
||||
let final = "";
|
||||
let interim = "";
|
||||
// tslint:disable-next-line prefer-for-of (not an Iterable?)
|
||||
for (let i = 0; i < event.results.length; ++i) {
|
||||
if (event.results[i].isFinal) {
|
||||
final += event.results[i][0].transcript;
|
||||
} else {
|
||||
@@ -107,7 +107,7 @@ declare var interim_span: HTMLSpanElement;
|
||||
}
|
||||
final_span.innerHTML = final;
|
||||
interim_span.innerHTML = interim;
|
||||
}
|
||||
};
|
||||
|
||||
function reset() {
|
||||
recognizing = false;
|
||||
@@ -126,8 +126,7 @@ declare var interim_span: HTMLSpanElement;
|
||||
interim_span.innerHTML = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// 6.2 Speech Synthesis Examples
|
||||
|
||||
@@ -136,16 +135,17 @@ declare var interim_span: HTMLSpanElement;
|
||||
This example has a change from the one in spec.
|
||||
`SpeechSynthesisUtterance('Hello World')` -> `new SpeechSynthesisUtterance('Hello World')` (Recorded as Errata 09)
|
||||
*/
|
||||
() => {
|
||||
{
|
||||
speechSynthesis.speak(new SpeechSynthesisUtterance('Hello World'));
|
||||
}
|
||||
|
||||
//Example 2
|
||||
() => {
|
||||
var u = new SpeechSynthesisUtterance();
|
||||
// Example 2
|
||||
{
|
||||
const u = new SpeechSynthesisUtterance();
|
||||
u.text = 'Hello World';
|
||||
u.lang = 'en-US';
|
||||
u.rate = 1.2;
|
||||
u.onend = function (event) { alert('Finished in ' + event.elapsedTime + ' seconds.'); }
|
||||
// TODO: https://github.com/Microsoft/TSJS-lib-generator/issues/232
|
||||
u.onend = event => { alert(`Finished in ${(event as any).elapsedTime} seconds.`); };
|
||||
speechSynthesis.speak(u);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user