我还在努力学习这个打字系统,不确定是否可行。
我正在使用redux和redux toolkit,并且提到在创建redux store之后,可以创建一个经过类型定义的存储dispatch和state版本。
直接从他们的网站上:
import { configureStore } from '@reduxjs/toolkit'
// ...
const store = configureStore({
reducer: {
one: oneSlice.reducer,
two: twoSlice.reducer
}
});
// Infer the `RootState` and `AppDispatch` types from the store itself
export type RootState = ReturnType<typeof store.getState>
export type AppDispatch = typeof store.dispatch
我的问题是我需要延迟存储的配置。
import { configureStore } from '@reduxjs/toolkit'
// ...
const createStore = () => configureStore({
reducer: {
one: oneSlice.reducer,
two: twoSlice.reducer
}
});
// in some other class ///
const store = createStore();
有没有办法在代码中使用第一种方法中提到的类型?
编辑
我希望能够注释最后一个例子中的store
常量。
store
的类型,还是想注释createStore
的返回类型? - Aluan Haddadstore
的类型。 - kamcknigexport type MyStore = ReturnType<typeof createStore>;
添加到导出createStore
的模块中。然后您可以导入该类型并使用它。我认为这是一种不好的做法。类型推断是您的朋友。 - Aluan Haddadexport type AppState = ReturnType<ReturnType<typeof createStore>['getState']>;
。你的方式给了我() => state
的返回类型,而我需要的是state
。 - kamcknig