在 JavaScript 中,不返回任何值的函数将隐式返回 undefined 值。 但是,在 TypeScript 中 void 和 undefined 不是一回事。
函数的 void 返回类型可能会产生一些不寻常但预期的行为。
返回类型为 void 的上下文类型不会强制函数不返回某些内容。 另一种说法是具有 void 返回类型(类型 vf = () => void)的上下文函数类型,在实现时,可以返回任何其他值,但会被忽略。
type voidFunc = () => void; const f1: voidFunc = () => { return true; }; const f2: voidFunc = () => true; const f3: voidFunc = function () { return true; };
这些函数的实现体里确实返回了数据,但是被忽略了。
但是我测试发现,这些 voidFunc 函数体内返回的数据,仍然可以被消费者接收到:
和这篇帮助文档里介绍的不一致: