flowtype - 如何选择流中函数返回的 sum 类型的非 null 版本?
问题描述
我有一个具有以下签名的函数:
() =>
| {|
something: {
isConnected: boolean,
},
isLoading: boolean
|}
| {|
something: null,
isLoading: boolean
|}
>
如您所见,它可以返回两个可能的对象,一个具有一个something
具有内容的属性,另一个具有该属性的 null 对象。我想使用一些实用程序类型来选择something
属性的非空版本。我尝试了以下方法:
type Something = $NonMaybeType<
$PropertyType<
$Call<
() =>
| {|
something: {
connectionError: string,
},
isLoading: boolean
|}
| {|
something: null,
isLoading: boolean
|}
>,
"something"
>
>
但是,当我使用生成的类型传递任何对象类型时,我仍然会收到错误消息,告诉我空(null 版本)与对象(函数所期望的东西)不兼容。
如何选择 sum 类型右侧的正确属性?
解决方案
推荐阅读
- javascript - JS function create multiple div when running with new data
- python - Trouble Shooting Python Quiverplots
- javascript - How capture messages of WS/Socket url from network with JS?
- javascript - Python Script Returns Garbled Japanese Text To Javascript Via AJAX Call
- java - Hibernate left join fetch to soft-deleted entity mapped with @ManyToMany association generates invalid query?
- android - Vysor stuck on "Waiting for decoder"
- list - Choose increasing sequence from a list
- python - 如何通过python“垃圾邮件”网址?
- r - Can I have one log scale y-axis and one normal second y-axis?
- python - Python请求网页抓取如何检测不存在的返回页面?