为什么 () => void return 是什么?

Why does () => void return something?

我知道下面的内容并不意味着 return 'type' 无效。我的理解是 voidFunc return 没什么,因为它是 returning 'void'。为什么它 return 任何类型?

type voidFunc = () => void

const myFunc: voidFunc = () => {
  return 'hello'
}

和下面这样写有什么区别? type voidFunc = () => any

Assignability of Functions

Return 输入 void

函数的 void return 类型会产生一些异常但符合预期的行为。

return 类型 void 的上下文类型 not 强制函数 not return 东西。另一种说法是具有 void return 类型 (type vf = () => void) 的上下文函数类型,在实现时,可以 return 任何其他值,但它会被忽略。

因此,() => void 类型的以下实现是有效的:

type voidFunc = () => void;
 
const f1: voidFunc = () => {
  return true;
};
 
const f2: voidFunc = () => true;
 
const f3: voidFunc = function () {
  return true;
};

而当其中一个函数的return值赋值给另一个变量时,会保留void类型:

const v1 = f1();
 
const v2 = f2();
 
const v3 = f3();