根据react的打字稿绑定,useState
挂钩的返回类型为[S, Dispatch<SetStateAction<S>>]
。让我们关注元组的第二个元素。
如果我们内联别名,它将变成(S | ((prevState: S) => S)) => void
。这样我们就有了一个函数,其参数为S | ((prevState: S) => S)
。
现在,我假设对于这两种用联合编码的情况,react必须执行不同的逻辑。在一种情况下,应直接使用参数,在另一种情况下,应使用旧状态调用该参数。
我的问题是:由于S
本身可能是一个函数,因此简单地检查typeof x == 'function'
听起来并不足够。
我试图找到此钩子的实际实现,但失败了。