HOC:函数调用的类型参数`Props`。缺少注释

时间:2017-10-10 21:32:29

标签: javascript reactjs flowtype

type ButtonProps = {
  children: React.Node,
  href: string,
  onClick: Function,
};

const Button = (props: ButtonProps) => (
  <a href={props.href} onClick={props.onClick}>
    <button type="submit">
      <span>{props.children}</span>
    </button>
  </a>
);

function hoc<Props: {}>(
  Component: React.ComponentType<Props>,
): React.ComponentType<Props> {
  return function WrapperComponent(props: Props) {
    return <Component {...props} />;
  };
}

export default hoc(Button);

我想要实现的是一个通用的高阶组件,它可以包装任何类组件以及无状态功能组件。以上简化的实现几乎取自https://flow.org/en/docs/react/hoc/

这给了我以下错误,我不会完全理解,因为我的印象是我跟随文档中提供的示例:

type parameter `Props` of function call. Missing annotation

Reproducible example on try

1 个答案:

答案 0 :(得分:0)

看起来其他人也报告了这个错误:https://github.com/facebook/flow/issues/4905

似乎最近已修复(v0.55):https://github.com/facebook/flow/issues/4709#issuecomment-334555165