对象属性链上的Flowtype“流量未涵盖”
我正在尝试使用Flow,但我一直得到“未被Flow覆盖”的警告,所以我的代码大部分都是加下划线的。 我检查了Flow文档,但是关于对象属性链接没有帮助,那么你如何得到这样的工作?
看起来你正在使用一个没有类型定义的库。
通过在文件中定义对象的属性查找,Flow具有100%的代码覆盖率,而且没有任何类型:
const foo = { bar: { baz: 2 } };
foo.bar.baz;
// 100% Flow coverage
单独的文件也一样:
1.js
// @flow
export default { bar: { baz: 2 } };
2.js
// @flow
import foo from './1.js'
foo.bar.baz;
// 100% code coverage
但是,只要从Flow未运行的文件(因为流已关闭或者因为其不使用流的第三方库)导入某个内容,Flow就无法覆盖它。
1.js
// @noflow
export default { bar: { baz: 2 } };
2.js
// @flow
import foo from './1.js'
foo.bar.baz;
// 0% code coverage
为了解决这个问题,你需要给出Flow类型的信息。
你可以做几件不同的事情
a.js
覆盖a.js
declare
类型的a.js.flow
文件 flow-typed/a.js
文件。 希望这有助于给你至少一个起点
我对Flow也是新手,但是我的观点是:
如果您有两个类,A和B,并且流类型检查未在A上启用,则调用它的B函数将“未被覆盖”。
// a.js
class A {
}
// b.js
/* @flow */
import A from './A'
class B {
buildA():void {
new A() // I'm un-covered by Flow!
}
}
Flow不知道A的结构,所以不能提供任何保证。
链接地址: http://www.djcxy.com/p/34957.html上一篇: Flowtype "Not covered by Flow" on object property chains