我尝试使用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);
我正在为最后一行(导出一行)发现未覆盖的代码警告。
我得到的错误:
我应该如何构建代码并删除此类警告?
答案 0 :(得分:3)
实际上我的项目也是如此,但我取消选中/取消选择VSCode底部的流覆盖选项。这将在代码中的流错误和未覆盖的代码之间切换。
未发现的代码是外部代码(导入的模块),有时是您自己的,更可能是第三方依赖项(如本例所示),它们不定义流类型。因此,流程无法检查类型的一致性。
您可以按照评论中的建议安装react-redux
中的flow-typed
类型定义。实际上我过去曾尝试过这种情况,并导致整个世界的痛苦,所以我离开了它。
作为旁注,请考虑这一点......旨在实现100%类型检查覆盖率与100%测试覆盖率一样有害(google it)。旨在实现高度,实际可实现的覆盖范围,不要浪费时间追逐最后几个百分点。