TypeScript void 和 undefined 的区别

2021-08-08  本文已影响0人  华山令狐冲

在 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 函数体内返回的数据,仍然可以被消费者接收到:

和这篇帮助文档里介绍的不一致:

更多Jerry的原创文章,尽在:"汪子熙":


上一篇 下一篇

猜你喜欢

热点阅读