Javascript 导入流类型不相交并集?
在当前react/redux项目上使用flowtype。Javascript 导入流类型不相交并集?,javascript,redux,flowtype,Javascript,Redux,Flowtype,在当前react/redux项目上使用flowtype。 我在actions.js文件中定义了不相交的并集类型: 导出类型ArticleAction= {type:'ARTICLE_SET_EDITION'} |{type:'ARTICLE_BLABLA',blip:string} TL;DRFlow在今天这样的情况下不会出错,但很可能在将来会出错 这与导入/导出甚至联合类型无关,您可以将其简化为: function method(val: 'foo') { if (val === 'ba
我在actions.js文件中定义了不相交的并集类型:
导出类型ArticleAction=
{type:'ARTICLE_SET_EDITION'}
|{type:'ARTICLE_BLABLA',blip:string}代码>
TL;DRFlow在今天这样的情况下不会出错,但很可能在将来会出错
这与导入/导出甚至联合类型无关,您可以将其简化为:
function method(val: 'foo') {
if (val === 'bar') {
// unreachable...
}
}
Flow可以看出这是一个不可能的优化,并且可以知道内部代码是不可访问的。然而,在无法到达的场景中,流不会出错。今天,它只是将val
的值标记为该代码路径中的“空”类型,然后继续
我们已经开始为这个可达性分析奠定基础,并将使用它在未来版本的流中创建错误
我们还可以使用可达性分析来测试穷尽性,即:
function method(val: 'foo' | 'bar') {
if (val === 'foo') {
// ...
} else if (val === 'bar') {
// ...
} else {
// possibilities of val have been exhausted, this is unreachable...
}
}
这些是常见的请求,我们正在处理它们。actions.js中有/@flow
吗?是的,我两个中都有//@flow