有没有办法表达两种相关类型 - 一种具有可空属性,一种没有 - 以这种方式在运行时检查后可以强制一种到另一种?
例如 -
type Stat = {
count: ?number,
}
type StatWithCount = {
count: number
}
let stats: Array<Stat> = [{count: null}, {count: 2}]
let validStats: Array<StatWithCount> = []
for (let i=0; i<stats.length; i++) {
const stat = stats[i]
if (stat.count !== null) {
validStats.push(stat) // This type is incompatible with object type
}
}
答案 0 :(得分:1)
据我所知,flow不支持此功能。
使用类型转换风险自负:
window.location.hash = target;