TypeScript接口中onGetData函数应该设置什么正确类型?
类型修改方案
onGetData在代码中是无入参、无返回值的回调函数,Props中对应的类型直接定义为() => void即可。同时可以把connect参数中dispatch的any类型一并替换,彻底清除代码中的any声明:
import { Dispatch } from 'redux'; // 若知晓getUsersData返回的Action结构,可替换下面的泛型约束,进一步消除any interface UserAction { type: string; payload?: unknown; } interface Props { onGetData: () => void; } class TSSS extends Component<Props> { componentDidMount() { this.props.onGetData(); } render() { return <div></div>; } } export default connect((dispatch: Dispatch<UserAction>) => ({ onGetData: () => { dispatch(getUsersData()); }, }))(TSSS);
补充说明
- 如果使用Redux Toolkit,可直接使用项目中全局定义的
AppDispatch类型,不需要单独声明Action结构,类型校验精度更高。 - 如果后续
onGetData需要传入参数/返回值,调整函数类型即可,比如需要传入数字ID就写成(id: number) => Promise<void>。
内容的提问来源于stack exchange,提问作者evaldschukin
相关产品推荐
相关产品推荐

