Я пытаюсь создать универсальный 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()
}}
/>;
теперь мыget TS2304: Cannot find name Bcd
, для следующего (r: Bcd)
.
Я пытался изменить его на (r: (typeof Bcd))
, но потом жаловался бы, что typeof Bcd
несовместим с Bcd
Я что-то не так делаю или такой набор текста не поддерживается машинописью?