导出react redux connect时,流程未覆盖代码警告

时间:2018-02-13 08:07:42

标签: javascript reactjs flowtype

我尝试使用react redux connect函数导出组件,如下所示:

//@flow
import React, { Component } from 'react';
import { connect } from 'react-redux';

type Props = {
    children?: any,
    someInfo: string
}

class ToDo extends Component<Props> {
    render() {
        let { someInfo } = this.props;

        return (
            <div className="todo-page">
                <pre>{ JSON.stringify(someInfo) }</pre>
            </div>
        );
    }
}

type StateProps = {
  someInfo: string
}

const mapStateToProps = (state: StateProps) => {
    const { someInfo } = state;
    return { someInfo };
};

export default connect(mapStateToProps, {})(ToDo);

我正在为最后一行(导出一行)发现未覆盖的代码警告。

我得到的错误:

flow type error

我应该如何构建代码并删除此类警告?

1 个答案:

答案 0 :(得分:3)

实际上我的项目也是如此,但我取消选中/取消选择VSCode底部的流覆盖选项。这将在代码中的流错误和未覆盖的代码之间切换。

enter image description here

未发现的代码是外部代码(导入的模块),有时是您自己的,更可能是第三方依赖项(如本例所示),它们不定义流类型。因此,流程无法检查类型的一致性。

您可以按照评论中的建议安装react-redux中的flow-typed类型定义。实际上我过去曾尝试过这种情况,并导致整个世界的痛苦,所以我离开了它。

作为旁注,请考虑这一点......旨在实现100%类型检查覆盖率与100%测试覆盖率一样有害(google it)。旨在实现高度,实际可实现的覆盖范围,不要浪费时间追逐最后几个百分点。