【发布时间】:2017-09-13 21:53:33
【问题描述】:
我想为我的 react 15.6 项目写一个Higher-Order Component,但我不知道如何为它写类型注释。
我已经做了一些搜索
1。 The typeof type
喜欢typeof Component?
2。函数类型
这对我来说似乎是正确的,因为类实际上是一个函数。但是函数的类型应该写成()=>Component<*>吗?在下面的代码中,any 的使用是否正确?它使类型“更广泛”。
// @flow
import React, {type Component} from 'react'
const faded = (componentKlass:()=>{}) => class FadedWrapper
extends React.Component<any> {
//...
}
3。看截图
这看起来不对,因为我们在这里需要一个类,但是警告让我想知道* 是什么(我还在上面的#2 中提出了它的可能用途。)?
警告说“应用多态类型需要。(可以使用* 来推断)”
我猜如果参数应该是Component 的某个子类的实例,流可以推断类型。
4。 from TypeScript
建议使用React.ComponentClass。
【问题讨论】:
-
谢谢!你真的很有帮助!我读完可以写一个答案,或者你可以写我打勾?
-
文档中的
React.ComponentType似乎丢失了。仍在搜索... -
请注意,Flow
-
使用的流版本是0.53.1。我提出了issue 并得到了答案。我很快就会在这里写一个答案。
标签: javascript reactjs flowtype