流:缺少T的类型注释

时间:2018-11-15 09:59:48

标签: reactjs flowtype

我们有一个纯组件,我们正在尝试将其转换为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:键的最佳实践是什么?应该是接口还是类型还是其他...

2 个答案:

答案 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[]” ”。