关于高阶组件的问题
```ts
import React from 'react';
function Hello() {
return <p>Hello</p>
}
interface Loading {
loading: boolean
}
function HelloHOC<P>(WrappedComponent: React.ComponentType<P>) {
return class extends React.Component<P extends Loading> {
render() {
const { loading, ...props } = this.props;
return loading ? <p>loading</p> : <WrappedComponent {...props as P}/>
}
}
}
export default HelloHOC(Hello);
```
为什么不能使用 P extends Loading 而是 P & Loading
展开
作者回复: 泛型约束只能用在泛型函数或泛型类的定义中,这里的 Component 已经是实现了,需要传入一个类型,P extends Loading 不是一种类型。