[react] 优雅解决typescript动态获取redux仓库的类型问题
store.getState()是可以获取总仓库的
先拿到函数的类型
再用ReturnType<T>
它是 TypeScript 中的一个内置条件类型,用于获取某个函数类型 T
的返回值类型
代码
// 先拿总仓库的函数类型
type StatefuncType = typeof store.getState;
//再拿函数类型T的返回值类型
type StateType = ReturnType<StatefuncType>;
const counter = useSelector((state: StateType) => {
return state.couterSlice;
});
可以直接一步到位
type StateType = ReturnType<typeof store.getState>;
也可以用这样
const a = store.getState();
type a1 = typeof a;
还麻烦怎么办?我想在导入的时候自带类型呢?
用TypedUseSelectorHook 加自定义useSelector
参考:TypeScript 快速开始 | Redux 中文官网
import { configureStore } from '@reduxjs/toolkit';
import { useSelector, TypedUseSelectorHook } from 'react-redux';
import couterSlice from './modules/counter';
const store = configureStore({
reducer: {
couterSlice,
},
});
export type storeType = ReturnType<typeof store.getState>;
export const useAppSelector: TypedUseSelectorHook<storeType> = useSelector;
export default store;
原文地址:https://blog.csdn.net/Madman528/article/details/144593285
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/445879.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/445879.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!