【发布时间】:2017-02-14 20:57:39
【问题描述】:
我试图在我的 Redux 应用程序上尽可能多地保证类型安全,但我遇到了这个问题。基本上我有这些类型:
type ActionA = { type: 'A' }
type ActionB = { type: 'B' }
type Actions = A | B
我想要一个类型ActionType,它是我所有可能的行为types 的联合。即:
type ActionType = 'A' | 'B' // <-- How to get this from `Actions` ?
换句话说,我想在一个联合 (A | B) 中获取一个字段 (type) 的所有可能值的联合。
这甚至可以通过流量实现吗?
用例是当我需要直接编写动作类型时能够避免拼写错误的动作类型。例如,使用redux-saga,我可以编写take 的定义(示例过于简化):
define function take(action: ActionType, saga: Function)
那么我肯定只能用有效的操作类型调用take。
【问题讨论】:
-
我认为不可能完全按照您的要求进行。但是,我发布了几个答案,我认为这可能会满足您更广泛的要求。
标签: javascript redux flowtype