簡體   English   中英

Typescript匿名類類型 - HOC

[英]Typescript Anonymous class type - HOC

我正在嘗試創建一個通用的HOC,但是我遇到了類型的問題

讓我們開始簡單:

class Abc extends React.Component<{}> {

    hello() {
    }

    render() {
        return <View />
    }
}

在JSX中引用,沒有問題

<Abc
    ref={(r: Abc) => {
        r.hello();
    }}
/>

現在讓我們創建一個匿名,就像HOC會返回一樣

const Bcd = class extends React.Component<{}> {

    hello() {
    }

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

做我們過去做過的事情

<Bcd
    ref={(r: Bcd) => {
        r.load()
    }}
/>;

現在我們得到TS2304: Cannot find name Bcd ,對於以下(r: Bcd)

我試圖將其更改為(r: (typeof Bcd)) ,但是它會抱怨typeof Bcd類型與Bcd不兼容

我做錯了什么或打字稿不支持那種打字?

在您的示例中, Abc是JavaScript變量名稱 TypeScript類型名稱,而Bcd是JavaScript變量名稱但不是 TypeScript類型名稱。 Bcd的類型是{hello(): void} & React.Component<{}>的未命名交集類型 由於類型沒有名稱,因此無法將其作為TypeScript代碼中其他類型的類型引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM