我知道下面的内容并不意味着返回“类型”为空。我的理解是 voidFunc 不返回任何内容,因为它返回“void”。为什么它返回任何类型?
type voidFunc = () => void
const myFunc: voidFunc = () => {
return 'hello'
}
与下面的写法有什么不同?
type voidFunc = () => any
参见函数的可分配性
返回类型为void
函数的 void 返回类型可能会产生一些异常,但是 预期的行为。
返回类型为
的上下文类型不会 not 强制 函数不返回某些东西。另一种说法是 具有void
返回类型 (void
) 的上下文函数类型在实现时可以返回任何其他值,但它将 忽略。type vf = () => void
因此,
类型的以下实现是 有效:() => void
type voidFunc = () => void; const f1: voidFunc = () => { return true; }; const f2: voidFunc = () => true; const f3: voidFunc = function () { return true; };
当这些函数之一的返回值被分配给 另一个变量,它将保留 void 类型:
const v1 = f1(); const v2 = f2(); const v3 = f3();