typescript 反应HOC的ts类型声明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 反应HOC的ts类型声明相关的知识,希望对你有一定的参考价值。

type extraProps = {
  loaded: boolean;
};
export function WithPluginStatus<P = {}>(
  WrappedComponent: React.ComponentType<P & extraProps>
): React.ComponentClass<P> {
  return class extends React.Component<P> {
    render() {
      return (
        <Consumer>
          {data => <WrappedComponent {...this.props} loaded={data.loaded} />}
        </Consumer>
      );
    }
  };
}
import * as React from 'react';

export default function <P = {}>(
  WrappedComponent: React.ComponentType<P>
): React.ComponentClass<P> {
  return class extends React.Component<P> {
    render() {
      return <WrappedComponent {...this.props} />;
    }
  };
}  
export default function wrapperFunc <Props, State, CompState> (
    WrappedComponent: typeof React.Component,
): React.ComponentClass<Props & State> {
    return class extends React.Component<Props & State, CompState> {
        public render() {
            return <WrappedComponent {...this.props} {...this.state} />;
        }
    };
}

以上是关于typescript 反应HOC的ts类型声明的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript教程# 3:TS的类型声明

TypeScript:类型标注和d.ts类型声明文件的使用

Typescript 未检测到声明“d.ts”文件中不存在的类型名称的错误

如何引用由 NPM 包中 tsc 的“声明”选项生成的 TypeScript .d.ts 文件中声明的类型?

带有 Yarn、TypeScript 和 React Native 的 Lerna:找不到模块“@project/common”或其对应的类型声明。ts(2307)

与 Typescript 反应 - 类型 缺少类型中的以下属性