在打字稿中,反应&redx,state
参数的mapStateToProps
函数连接方法声明为any
。如何使用接口代替函数中的任何类型参数
interface MapStateToProps<TStateProps, TOwnProps> {
(state: any, ownProps: TOwnProps): TStateProps;
}
我想用我的代码中定义的类型来代替状态参数的任何类型。我怎样才能做到这一点?
const mapStateToProps = (state: MyStateInterface) => {};
但是这不起作用,因为它不符合签名。
什么工作只有当我把它像这样:
const mapStateToProps = (state: any) => {};
但后来我失去我的IDE自动完成,并键入我的函数内部检查。
事实上,它是一个更多的打字稿问题,而不是一个打字问题。
当函数类型的参数为any
参数时,如何在使用时指定参数的实际类型?
不应它是'常量mapStateToProps:MyStateInterface =(状态)=>'?你正试图将函数值分配给不正确的状态参数。你可以定义一个状态接口,它包含你的reducer的返回值,如果你想把这个类型赋值给状态参数 –
,实际上我需要输入函数的''''参数。 'MyStateInterface'是一个接口,描述了我在应用程序中的存储(它可以名称为'StoreInterface',我在这里将它命名为与redux接口声明相匹配) – Bouni
不确定是什么意思?如果您有'combineReducers'的索引,则可以为该组合缩减器定义一个类型/接口,这就是状态值。让我写一个答案来帮助解释 –