如何使用流类型来键入Redux存储?

时间:2019-04-21 08:13:44

标签: reactjs react-native redux flowtype

我正在尝试使用flow-typed正确键入Redux。 我使用从true导入的false像这样键入我的商店,Flow使用了Store文件redux并引发了一个错误:

flow-typed

使用此代码,我得到以下错误:redux_v4.x.x.js

我也尝试过这样定义/* @flow */ import rootReducer from '@reducers/index' import type { Store } from 'redux' import { applyMiddleware, createStore } from 'redux' import { composeWithDevTools } from 'redux-devtools-extension' import thunk from 'redux-thunk' const configureStore = () => { const store: Store = createStore( rootReducer, composeWithDevTools(applyMiddleware(thunk)) ) return store } export { configureStore as default } ,但是Flow抱怨说他没有找到S和A的声明,这似乎很正常。

Cannot use Store [1] without 2-3 type arguments使用的const store: Store<S, A>文件中,存储的定义如下:

redux_v4.x.x.js

我已经看过这篇帖子,与我的非常相似,但到目前为止还没有答案,所以这篇帖子就像是一个颠簸的typing redux store using flowtype and flow-typed

感谢帮助!

1 个答案:

答案 0 :(得分:0)

您需要提供S类型的AStore。例如,

import { createStore } from 'redux';
import type { Store } from 'redux';

type State = Array<number>;
type Action = { type: 'A' };
type MyStore = Store<State, Action>;
const store: MyStore = createStore(...);

// or inline
const store: Store<Array<number>, { type: 'A' }> = createStore(...);

查看test_createStore.js中提供的示例,或更完整的示例,查看this sandbox