2017-07-02 1 views
0

DateObjの2つの可能性はまだ分かりませんが、Flowはelseブランチの型を改良するようには見えません。これを正しく入力するにはどうすればよいですか?2つの「厳密な」オブジェクトの和集合の型を細分化する方法は?

type DateObj = {| date: string |} | {| dateTime: string |} 

export const parseDate = (dateObj: DateObj) => { 
    if (dateObj.date) { 
    return moment(dateObj.date).toDate() 
    } else { 
    return moment(dateObj.dateTime).toDate() 
    } 
} 

フロー:プロパティdateTimehttps://flow.org/try/にしよう

答えて

2

(最後のreturn文の行で)オブジェクト型に

を見つけていないプロパティは、それがこのエラーを修正する私に

if (dateObj.date) { 
    ^Sketchy null check. Perhaps you meant to check for null instead of for existence? 

を追加誤差を与え、助けも私を解きます元号

if (dateObj.date !== undefined) { 
+0

FYIのスケッチヌルチェックの警告は、opt-in type-awarを提供するプロジェクトの一部です糸を引く。デフォルトではオフになっていますが、flow.org/tryでは誤って有効になっていました。 –

関連する問題