谈论此处列出的类型:https://github.com/facebook/flow/blob/v0.63.1/lib/react.js#L45-L66
他们不应该返回void
,因为他们没有return
任何东西吗?
答案 0 :(得分:3)
这是因为Flow issue #1803 "Allow react components' lifecycle methods to be async"。这意味着应该允许返回一个promise,以便这些函数可以是异步的。
创建了基于该讨论的Flow TODO issue "Allow React lifecycle methods to return mixed",this patch引入了从void
到mixed
的更改。
推理(引用)
这将允许人们写下这样的东西:
class Component extends React.Component { async componentDidMount() { // ... } }
问题可以通过void | Promise<void>
的返回类型解决,但与mixed
一起使用的原因是
Flow似乎没有责任强制执行在运行时没有区别的东西