【发布时间】:2019-12-30 03:09:24
【问题描述】:
我在 Typescript 中创建新的 Redux Store 时添加属性时遇到问题:
const bindMiddleware = middleware => {
if (process.env.NODE_ENV !== 'production') {
const { composeWithDevTools } = require('redux-devtools-extension')
return composeWithDevTools(applyMiddleware(...middleware))
}
return applyMiddleware(...middleware)
}
function configureStore (initialState = exampleInitialState) {
const sagaMiddleware = createSagaMiddleware()
const store = createStore(
rootReducer,
initialState,
bindMiddleware([sagaMiddleware])
)
store.sagaTask = sagaMiddleware.run(rootSaga)
return store
}
export default configureStore
带有以下错误消息:
27:9 Property 'sagaTask' does not exist on type 'Store<{ error: any; count: number; lastUpdate: number; light: boolean; placeholderData: any; } | { lastUpdate: any; light: boolean; count: number; error: boolean; placeholderData: any; }, any>'.
25 | )
26 |
> 27 | store.sagaTask = sagaMiddleware.run(rootSaga)
| ^
28 |
29 | return store
30 | }
有什么建议吗?
【问题讨论】:
-
TypeScript的想法是,您在编译时就知道每个 Object 将具有哪些属性,因此您必须在使用它们之前定义这些属性。store已经在某处有一个 TypeScript 定义,该定义没有提及任何关于sagaTask的内容。
标签: javascript reactjs typescript redux redux-saga