我有一个我明确定义的名为~/invocations
的类型:
Product
以下是使用此类型的组件的代码:
// types.js
export type Product = {
id: number,
name: string
}
奇怪的是,在运行import type { Product } from './types'
type Props = {
products: Product[]
}
const MyComponent = ({ products }: Props) => (
<ul>
{products.map( (product: Product) =>
<li key={product.id}>{product.name}</li>
)}
</ul>
)
时,yarn flow coverage path/to/this/component --color
告诉我该文件未被100%覆盖,在flow
和id
中突出显示product.id
name
作为罪魁祸首。
如果我改为定义内联product.name
的类型:
product
然后100%覆盖该文件。为什么会这样?我的假设是,使用products.map( (product: { id: number, name: string }) => ...)
类型,我应该在这里介绍。
Product
中删除类型时,可能值得注意:
product
覆盖范围明显较少,但这次不仅仅突出显示products.map( product => ... )
和id
,name
cli突出显示flow
和product.id
。
编辑2:用户错误。我从未将product.name
添加到// @flow
文件中!
哎呀:)
答案 0 :(得分:0)
我的// @flow
文件顶部只有types.js
评论。这解决了这个问题。