在 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 函数体内返回的数据,仍然可以被消费者接收到:
![](https://img.haomeiwen.com/i2085791/1c374a84741b26f0.png)
![](https://img.haomeiwen.com/i2085791/5f1d3a99cd50655f.png)
和这篇帮助文档里介绍的不一致:
![](https://img.haomeiwen.com/i2085791/2b6f28b46e3da214.png)
更多Jerry的原创文章,尽在:"汪子熙":
![](https://img.haomeiwen.com/i2085791/97c4752c0e619c44.png)
网友评论