首页 > 解决方案 > 我们如何使用 TSX 为反应元素指定类型

问题描述

只是想在我将文件从 js 转换为 tsx 时给类型

export const BackNavigationTextWrapper = (WrappedComponent:type i need to specify) => {

当我控制台 WrappedComponent 变得像这样

   var wrappedComponentRef = props.wrappedComponentRef,
       remainingProps = _objectWithoutProperties(props, ["wrappedComponentRef"]);

   return _react2.default.createElement(_Route… ```

标签: reactjstypes

解决方案


这是答案

无类型(HOC)

const withLoading = Component =>
  class WithLoading extends React.Component {
    render() {
      const { loading, ...props } = this.props;
      return loading ? <LoadingSpinner /> : <Component {...props} />;
    }
  }

带类型

interface WithLoadingProps {
  loading: boolean;
}

const withLoading = <P extends object>(Component: React.ComponentType<P>) =>
  class WithLoading extends React.Component<P & WithLoadingProps> {
    render() {
      const { loading, ...props } = this.props;
      return loading ? <LoadingSpinner /> : <Component {...props as P} />;
    }
  };

推荐阅读