2017-03-24 4 views
1

2つの関連タイプを表現する方法はありますか?1つはヌル可能プロパティ付きで、もう1つは存在しません。実行時にチェックした後で互いに強制することができますか?フロー:null-with-objectable属性をobject-with-non-nullable-propertyに強制的に強制しますか?

例えば -

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 
    } 
} 

https://flowtype.org/try/#0C4TwDgpgBAysCGwoF4oG8BQUoGMD2ArgHbABcUA-EQQLYBGEATgDQYC+GoksCwA6gEtgACwDChEinRZcEslGr0m7DBgA2EJAGdeW8gEFGjeCAA8cRAD4pAbTT5i86mrVtm6ByXIAmNgF11TSgAN3g1AQATC2A9KENjM2jBEXFHa1QbAIwAMzxGKAAKDSQBZAAGAG4oAVMdRC0AOg0iAHMRKoEAak6ASmlsYqg6pFRhrRsBAOwBbMLhhs8kAEJkVGc1PsxsbFDwqN0GsAItYQLhnpkONiA

答えて

1

私の知る限りでは、流れはこれをサポートしていません。

自分の責任でキャストを使用するタイプ:

if (stat.count !== null) { 
    validStats.push(((stat: Object): StatWithCount)) 
} 
関連する問題