具有来自react-redux的connect的高阶组件不适用于Typescript打字

时间:2019-06-18 12:39:56

标签: javascript reactjs typescript high-order-component

我创建了高阶组件,该组件必须通过连接功能连接到redux存储。实际上,所有内容都可以使用纯Javascript运行,但是我想在这里使用Typescript。与 props 键入有关的一个错误。

我将通用类型用于包装道具组件,并且我的高阶组件也有自己的道具类型。所以我想通过运算符将它们连接起来,但是我从连接功能中得到了错误。

WithSatsFormProps 是空界面

const withSatsForm =
    <P, K>(options: WithSatsFormOptions<K>) =>
        (SatsComponent: ComponentType<P>) => {
            class WithSatsForm extends Component<WithSatsFormProps & P> { <-- because of this
                constructor(props: WithSatsFormProps & P) {
                    super(props);
                }

                public render() {
                    return (
                        <div>
                            <SatsComponent {...this.props as P} />
                        </div>
                    )
                }
            }

            return connect()(WithSatsForm); <-- here is error typing
        }

export default withSatsForm;

错误消息:

类型'typeof WithSatsForm'的参数不能分配给类型'ComponentType,WithSatsFormProps&P >>'的参数。   类型'typeof WithSatsForm'不可分配给'ComponentClass,WithSatsFormProps&P>,any>'。     参数'props'和'props'的类型不兼容。

1 个答案:

答案 0 :(得分:0)