【发布时间】:2020-04-28 13:37:16
【问题描述】:
我是 TypeScript 的新手,我正在努力编写带有 typecheck 的 HOC。 这是我的 HOC:
import React from 'react';
import Firebase from './Firebase';
export type FirebaseType = Firebase;
interface OwnProps {
firebase: typeof Firebase;
}
const FirebaseContext = React.createContext(new Firebase());
export const withFirebase: React.FC = <T extends OwnProps>(
Component: React.ComponentType<T>,
): React.ComponentType<T> => (props) => (
<FirebaseContext.Consumer>
{(firebase: FirebaseType) => <Component {...props} firebase={firebase} />}
</FirebaseContext.Consumer>
);
export default FirebaseContext;
它会抛出一个错误:
类型'(组件:React.ComponentType)=> React.ComponentType' 不可分配给类型'FC'。种类 参数“组件”和“道具”不兼容。 类型 '{ children?: ReactNode; }' 不可分配给类型 'ComponentType'。 类型 '{ children?: ReactNode; }' 不可分配给类型 'FunctionComponent'。 类型 '{ children?: ReactNode; }' 没有为签名 '(props: PropsWithChildren, context?: any): ReactElement ReactElement 组件)> |空) | (新的 (props: any) => 组件<...>)> |空'.ts(2322)
我完全不知道如何继续使用此代码或如何使其工作。
有什么想法吗?
【问题讨论】:
-
亲爱的@VasylButov,您可以回复this post。也许它可以帮助你。
标签: reactjs typescript