2016-09-13 6 views
1

現在のreact/reduxプロジェクトでflowtypeを使用しています。その後、私の減速で、私はインポートフロータイプの分離結合をインポートしますか?

import type { ArticleAction } from './actions'; 
 

 
[...] 
 
    
 
const articlesReducer = (state: any = initialState, action: ArticleAction): any => { 
 
    if (action.type === 'ARTICLE_BLABLA') { 
 
    const test = action.blip.shoups; 
 
    return test; 
 
    } 
 
}

フローが行う必要があり

export type ArticleAction = 
 
    { type: 'ARTICLE_SET_EDITION' } 
 
    | { type: 'ARTICLE_BLABLA', blip: string };

そして:私は私のactions.jsで定義
は互いに素組合型のファイル問題を検出しません。

しかし!私がArticleActionをreducer.jsで直接宣言すると、blipが文字列であるため、action.blip.shoupsが無効であることを認識します。

私が間違っていることについてのアイデアはありますか? THX

+0

actions.jsに '// @ flow'がありますか? – vkurchatkin

+0

はい私はどちらも//両方のフローを持っています – Nihau

答えて

2

TL; DRフローは、この今日のような状況でエラーをしませんが、最も可能性の高い将来インチこれは、インポート/エクスポート、あるいは労働組合のタイプとは何の関係もありません

、あなたはこのまでそれをすべての方法を簡素化することができます:

function method(val: 'foo') { 
    if (val === 'bar') { 
    // unreachable... 
    } 
} 

の流れは、それがあることがわかります内部コードが到達不能であることを知ることができます。ただし、到達不能シナリオではフローにエラーはありません。今日では、単にそのコードパスに "空の"タイプとしてvalの値をマークし、移動します。

私たちはこの到達可能性の分析の基礎を築き始め、それを使って将来のバージョンのフローでエラーを作成します。

我々はまた、すなわち、網羅をテストするために、到達可能性分析を使用することができます。:

function method(val: 'foo' | 'bar') { 
    if (val === 'foo') { 
    // ... 
    } else if (val === 'bar') { 
    // ... 
    } else { 
    // possibilities of val have been exhausted, this is unreachable... 
    } 
} 

これらは一般的な要求であり、私たちは彼らに取り組んでいます。

関連する問題