我们有一个纯组件,我们正在尝试将其转换为Flow类型的安全性。应用程序将此组件用作HOC(高阶组件)。它正在生成上下文并将其注入已调度的组件。
因此,HOC的一种方法是返回涉及许多绑定操作的对象文字。在这些键值对中,有一个我们未处理的表达式。
我们收到有关缺少符号的错误:
缺少T的类型注释。T是在中声明的类型参数 数组类型 [1],并在调用方法过滤器 [2]时隐式实例化。
export type PropsType = {
reviewConf ? : Object,
...
}
export type ContextType = {
registerComponent: () => void,
errors ? : Array < any >
...
}
export type StateType = {
meta: Object
}
class AbstractPureFormComponent extends React.PureComponent < PropsType, StateType > {
constructor(props: PropsType, context: ContextType) {
super(props, context)
this.state = {
meta: {}
}
}
getChildContext() {
return {
registerComponent: this.registerComponent.bind(this),
...
errors: Object.keys(this.state.meta).filter(
name => this.state && this.state.meta[name].error
)
}
}
}
}
那么键入此error:
键的最佳实践是什么?应该是接口还是类型还是其他...
答案 0 :(得分:1)
我刚遇到了一个简单的函数,该函数只是对数组进行克隆和排序,例如
const sortArray = (myArr: MyArray[]) => [...myArr].sort((a, b) => a > b ? -1 : 1)
为我解决的只是输入sortArray
的返回值:
const sortArray = (myArr: MyArray[]): MyArray[] => [...myArr].sort((a, b) => a > b ? -1 : 1)
答案 1 :(得分:0)
调整比它简单,问题是你的变量是“array: Array<MyArray>
”,而“排序”返回“array: MyArray[]
”,所以,把你的变量改为“array: MyArray[]
” ”。