首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Typescript匿名类类型- HOC

Typescript匿名类类型- HOC
EN

Stack Overflow用户
提问于 2019-03-20 03:56:16
回答 1查看 508关注 0票数 0

我正在尝试创建一个通用的HOC,但是我在类型方面遇到了一些问题

让我们从简单的开始:

代码语言:javascript
运行
复制
class Abc extends React.Component<{}> {

    hello() {
    }

    render() {
        return <View />
    }
}

在JSX中引用,没有问题

代码语言:javascript
运行
复制
<Abc
    ref={(r: Abc) => {
        r.hello();
    }}
/>

现在让我们创建一个匿名的,就像HOC返回的那样

代码语言:javascript
运行
复制
const Bcd = class extends React.Component<{}> {

    hello() {
    }

    render() {
        return <View />
    }
}; 

做我们以前做过的事情

代码语言:javascript
运行
复制
<Bcd
    ref={(r: Bcd) => {
        r.load()
    }}
/>;

现在我们为下面的(r: Bcd)获取TS2304: Cannot find name Bcd

我尝试将其更改为(r: (typeof Bcd)),但随后它会抱怨typeof BcdBcd不兼容

我是不是做错了什么,或者typescript不支持这种类型的输入?

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 04:21:36

在您的示例中,Abc是JavaScript变量名和TypeScript类型名,而Bcd是JavaScript变量名,但不是TypeScript类型名。Bcd的类型是{hello(): void} & React.Component<{}>的未命名intersection type。因为该类型没有名称,所以不能在TypeScript代码中将其作为类型引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55249067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档