TS:将函数分配给具有泛型类型的“const”

Vac*_*tny 5 generics typescript

在 TS 之前的世界中,我们曾经像这样将简单的 HOC 分配给 const。(代码使用recompose/mapProps

const withAverage = mapProps(
    (props) => ({ ...props, average: avg(props.numbers) })
)
Run Code Online (Sandbox Code Playgroud)

在TS世界中代码看起来像这样(它不是100%准确,但说明了问题)

const withAverage = <R extends DataRow, P extends WithData<R>>(
  component: React.ComponentType<P>
): React.ComponentType<P & WithAverage<R>> =>
  mapProps<P, P & WithAverage<R>>(
    (props) => ({ ...props, average: avg(props.numbers) })
(component);
Run Code Online (Sandbox Code Playgroud)

TypeScript版本将HOC函数包装在另一个HOC函数中,但这不是必需的,mapProps已经提供了HOC所以只需

const withAverage = mapProps...
Run Code Online (Sandbox Code Playgroud)

就足够了,不需要将其包装在另一个函数中,例如

const withAverage = Component => mapProps(...)(Component)
Run Code Online (Sandbox Code Playgroud)

但据我所知,没有办法如何分配 HOC 来const支持泛型,比如

const withAverage<I,O> = mapProps<I, O>(...)
Run Code Online (Sandbox Code Playgroud)

泛型似乎仅支持函数声明,而不支持 HOC 赋值。还是我错了?