【问题标题】:What is purpose of using void here in typescript?在打字稿中使用 void 的目的是什么?
【发布时间】:2021-05-22 03:24:28
【问题描述】:

我无法理解来自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
}

【问题讨论】:

    标签: typescript void arrow-functions


    【解决方案1】:

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

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

    所以另一种看待方式是:

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

    其中SetError 是最后返回的setError

    setError,一个状态设置器函数,接受一个可选参数,当状态设置器被调用时,什么都不返回——它没有任何返回值(即使使用undefined的返回值也没有有意义),所以输入为void

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2017-05-25
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 2016-04-08
      • 2017-01-30
      • 1970-01-01
      相关资源
      最近更新 更多