Structurally identical to SpeechHandle at runtime — this alias only exists
to hide the then key from the static view. Without it, TypeScript's
Awaited<T> unwrap recurses through SpeechHandle's own .then callback
parameter forever, emitting TS1062 ("Type is referenced directly or
indirectly in the fulfillment callback of its own 'then' method").
Omitting then terminates the unwrap because the pattern
object & { then(...) } no longer matches. In practice, calling .then
on an already-awaited handle has no meaningful use.
Type returned by
awaiton a SpeechHandle.Structurally identical to SpeechHandle at runtime — this alias only exists to hide the
thenkey from the static view. Without it, TypeScript'sAwaited<T>unwrap recurses throughSpeechHandle's own.thencallback parameter forever, emitting TS1062 ("Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method"). Omittingthenterminates the unwrap because the patternobject & { then(...) }no longer matches. In practice, calling.thenon an already-awaited handle has no meaningful use.