在打字稿中使用 void 的目的是什么?

What is purpose of using void here in typescript?

我无法理解 https://github.com/bvaughn/react-error-boundary/blob/master/src/index.tsx 中以下源代码中 void 的用途。谁能解释一下?

function useErrorHandler(givenError?: unknown): (error: unknown) => void {
  const [error, setError] = React.useState<unknown>(null)
  if (givenError != null) throw givenError
  if (error != null) throw error
  return setError
}

稍微分解一下,冒号后面的是函数的return值:

function useErrorHandler(givenError?: unknown): (error: unknown) => void {
//                                              ^^^^^^^^^^^^^^^^^^^^^^^^

所以另一种看待方式是:

type SetError = (error: unknown) => void;
function useErrorHandler(givenError?: unknown): SetError {

其中 SetError 是最后的 setError returned。

setError,一个状态 setter 函数,接受一个可选参数,当状态 setter 被调用时,没有任何东西被 returned - 它没有有任何 return 值(即使使用 undefined 的 return 值也没有意义),所以它被输入为 void.