定义流文字类型时使用外部常量

时间:2017-06-29 20:28:36

标签: javascript flowtype

我想在流文字类型中使用包中的导入常量并静态检查开关;

有办法做到这一点吗? (以下示例)

// action/types.js
import { REHYDRATE } from 'redux-persist/constants'

export type FooBar = {
  foo: number,
  bar: string,
};

export type Action
  = { type: 'FETCH_REQUEST', data: FooBar[] }
  | { type: REHYDRATE, payload: any } // <== this do not work
  ;

// reducer.js
import { REHYDRATE } from 'redux-persist/constants'

export default function (state: State = initialState, action: Action) 
    switch (action.type) {
    case 'FETCH_REQUEST': 
        // do something with action.data
    case REHYDRATE: { // <= flow says: uncovered code
        // do something with action.payload
    default:
        return state
    }
}

1 个答案:

答案 0 :(得分:5)

Flow不支持在类型定义中使用包含常量的变量。

您必须在定义中使用字符串值本身或支持数据类型。

This post也是一个类似的问题,如果您也想查看它。