Обрабатываю
children
, которые были созданы с
forwardRef
функцией, так что у них есть свойство
child.ref
. Но
TypeScript выдаёт ошибку
Свойство "ref" не существует в типе "string | number | boolean | ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal".
Тут можно было бы подумать, что он не может найти свойство
ref
в примитивах
"string | number | boolean"
, но даже при отсеивании этих типов с помощью
typeof
, он не может найти свойство
ref
:
Свойство "ref" не существует в типе "ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal".
Свойство "ref" не существует в типе "ReactElement<any, string | JSXElementConstructor<any>>".ts(2339)
Вот код (упрощено для примера):
{React.Children.map(props.children, (child) => {
if (
typeof child !== 'string' &&
typeof child !== 'number' &&
typeof child !== 'boolean'
) {
console.log(child?.ref);
}
return <div>{child}</div>
})}
Подскажите, какой тип там, или, возможно, я не правильно получаю ref
дочернего элемента?