已经阅读了几篇关于此的文章,但它们似乎对我不起作用 . 我声明了两个接口 . 一个用于表示父项传递的组件道具:
interface MyProps {
name: string;
}
然后是另一个表示redux connect()函数创建的props的接口:
interface DispatchProps {
addData: (someData: any) => void;
}
因此,要获得合适的类型检查我的理解是我需要使用泛型创建我的react组件:
class MyComponent extends React.Component<MyProps, {}> {
render() {
return (
<span onClick={this.props.addData}>{this.props.name}</span>
};
}
问题是打字稿现在很烦,因为this.props.addData不存在 . 所以我做了互联网告诉我的一个好小男孩并添加一个交集类型:
class MyComponent extends React.Component<MyProps & DispatchProps, {}> {}
但问题只是简单地转移了,因为在父组件中,打字稿现在很难过,因为在我的渲染中我有:
render() {
return (
<MyComponent name="a name" />
);
}
因为“类型{}”上缺少“属性addData” .
那我在这里错过了什么?如何以一种允许我在组件中进行类型检查的方式将redux与反应的作用结合起来?
提前致谢 .
1 回答
事实证明问题不在于我的接口/泛型,问题在于我的父语句中的import语句 . 我发布了答案,希望它可能在将来帮助其他人 .
我有:
但这是导入COMPONENT CLASS而不是此行中生成的CONNECTED COMPONENT:
导入默认值并将正确的泛型添加到connect函数解决了我的问题 .